[syslinux] [PATCH] ISOLINUX: Fix checksum calculation in lzo/prepcore.c

Gene Cumm gene.cumm at gmail.com
Fri Oct 26 03:26:59 PDT 2018


On Fri, Jan 26, 2018 at 3:37 PM Thomas Schmitt via Syslinux
<syslinux at zytor.com> wrote:
>
>
> 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 at gmx.net>
> ---
> --- 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));
> --

Merged.

-- 
-Gene


More information about the Syslinux mailing list