aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Schmitt <scdbackup@gmx.net>2018-10-25 06:13:04 -0400
committerGene Cumm <gene.cumm@gmail.com>2018-10-25 06:18:07 -0400
commitac39cffd82d9f3ea4f243657c63db071ba8ef7b0 (patch)
treea04c478746201a1f0e8f0c98f6e514559767cf5f
parent2ea44cbedb297bd6b409d5c1e0402d5f89592be4 (diff)
downloadsyslinux-ac39cffd82d9f3ea4f243657c63db071ba8ef7b0.tar.gz
syslinux-ac39cffd82d9f3ea4f243657c63db071ba8ef7b0.tar.xz
syslinux-ac39cffd82d9f3ea4f243657c63db071ba8ef7b0.zip
ISOLINUX: Fix checksum calculation in lzo/prepcore.c
The prescription for Boot Info Table says that checksumming begins at byte 64 of isolinux.bin. When prepcore writes isolinux.bin it begins copying bytes from the input file at the offset given by variable "start". But it begins checksumming at offset 64 of the input file. The problem exists since introduction of prepcore by release 4.00. ISO 9660 programs usually fix it when they write the Boot Info Table. Signed-off-by: Thomas Schmitt <scdbackup@gmx.net>
-rw-r--r--lzo/prepcore.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/lzo/prepcore.c b/lzo/prepcore.c
index 9147b2e4..b5ebe88b 100644
--- a/lzo/prepcore.c
+++ b/lzo/prepcore.c
@@ -331,7 +331,7 @@ int main(int argc, char *argv[])
unsigned int ptr;
outfile_len =
((offset - start + out_len + 2047) & ~2047) - (offset - start);
- for (ptr = 64; ptr < offset; ptr += 4)
+ for (ptr = start + 64; ptr < offset; ptr += 4)
csum += get_32((uint32_t *) (infile + ptr));
for (ptr = 0; ptr < outfile_len; ptr += 4)
csum += get_32((uint32_t *) (out + ptr));