[U-Boot] [PATCH] cmd_sf: Fix problem with "sf update" and unaligned length

Gerlando Falauto gerlando.falauto at keymile.com
Mon Jan 12 09:07:30 CET 2015


Hi Wolfgang,

On 01/12/2015 08:27 AM, Stefan Roese wrote:
> Hi Wolfgang,
>
> On 12.01.2015 08:17, Wolfgang Denk wrote:
>>> The new code is even simpler and copies the source data into the temp
>>> buffer and now uses the temp buffer to write the complete sector. So
>>> only one SPI sector write is used now instead of 2 in the old version.
>> ...
>>
>>>    	if (len != flash->sector_size) {
>>> -		/* Rewrite the original data to the end of the sector */
>>> -		if (spi_flash_write(flash, offset + len,
>>> -				    flash->sector_size - len, &cmp_buf[len]))
>>> -			return "write";
>>> +		memcpy(cmp_buf, buf, len);
>>> +		ptr = cmp_buf;
>>>    	}
>>
>> Should we add a  memset(buf, 0, sizeof(buf))  before the memcpy() to
>> prevent information from earlier activities to leak?
>
> "buf" points to the new data to be written into the flash. We're
> overwriting the first "len" bytes of "cmp_buf" with this data.
>
> I don't see why we should erase anything there. Perhaps I'm missing
> something though.

That's right, and that's the whole point: cmp_buf points to the data 
read from the flash sector before erasing it, because that's what we 
want to keep (by re-writing it).
The first part, however, we overwrite with the new data (buf).
So there's nothing to erase.

Thanks,
Gerlando



More information about the U-Boot mailing list