[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