diff options
author | Thomas Schmitt <scdbackup@gmx.net> | 2018-10-25 06:13:04 -0400 |
---|---|---|
committer | Gene Cumm <gene.cumm@gmail.com> | 2018-10-25 06:18:07 -0400 |
commit | ac39cffd82d9f3ea4f243657c63db071ba8ef7b0 (patch) | |
tree | a04c478746201a1f0e8f0c98f6e514559767cf5f | |
parent | 2ea44cbedb297bd6b409d5c1e0402d5f89592be4 (diff) | |
download | syslinux-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.c | 2 |
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)); |