We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
check_checksum_field
1 parent 8e00c03 commit 5b4f6a9Copy full SHA for 5b4f6a9
1 file changed
src/extract.jl
@@ -628,9 +628,18 @@ end
628
629
function check_checksum_field(buf::AbstractVector{UInt8})
630
chksum = read_header_int(buf, :chksum)
631
- actual = let r = index_range(:chksum)
632
- sum(i in r ? UInt8(' ') : buf[i] for i = 1:512)
+ r = index_range(:chksum)
+ r_first, r_last = first(r), last(r)
633
+
634
+ actual = zero(UInt32)
635
+ for i in 1:(r_first-1)
636
+ actual += buf[i]
637
+ end
638
+ actual += UInt32(' ') * (r_last - r_first + 1)
639
+ for i in (r_last+1):512
640
641
end
642
643
chksum == actual && return
644
header_error(buf, "incorrect header checksum = $chksum; should be $actual")
645
0 commit comments