Hi Wolfgang,

> Dear Lukasz Majewski,
> 
> In message <[email protected]>
> 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
_______________________________________________
U-Boot mailing list
[email protected]
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to