[U-Boot] [PATCH v2] lib:crc32: Allow setting of the initial crc32 value
Lukasz Majewski
l.majewski at samsung.com
Wed May 7 14:25:27 CEST 2014
Hi Wolfgang,
> Dear Lukasz Majewski,
>
> In message <1399443021-11748-1-git-send-email-l.majewski at samsung.com>
> you wrote:
> > The current approach set the initial value of crc32 calculation to
> > zero, which is correct for calculating checksum of the whole chunk
> > of data.
> ...
> > + if (*output)
> > + memcpy(&crc, output, sizeof(crc));
> > +
> > + crc = crc32_wd(crc, input, ilen, chunk_sz);
> > crc = htonl(crc);
> > memcpy(output, &crc, sizeof(crc));
>
> You can actually remove the "if (*output)" because output has always
> to be a non-null pointer, as we're going to store the result there.
I think, that the above statement would be correct if I had checked the
if (output).
The problem here is that *output refers to uint8 and only first/last
byte is checked. This is obviously wrong.
You are right that this check is not needed.
>
> Which means that you cannot use this to implicitly initialize crc =0,
> whichin turn means you MUST add porper initialization to all callers
> of that function.
Ok.
>
> Best regards,
>
> Wolfgang Denk
>
--
Best regards,
Lukasz Majewski
Samsung R&D Institute Poland (SRPOL) | Linux Platform Group
More information about the U-Boot
mailing list