[U-Boot] tools: omapimage: fix corner-case in byteswap path

Tom Rini trini at konsulko.com
Thu Dec 7 01:21:30 UTC 2017


On Mon, Dec 04, 2017 at 05:04:02PM +0100, Philipp Tomsich wrote:

> Since commit 2614a208471e ("common: command: tempory buffer should
> have size of command line buf"), there have been consistent Travis CI
> failures on my builds (interestingly not for Tom, even though building
> the same commit id) due to a SEGV in building the byteswapped
> omapimage:
>      	    arm: pcm051_rev3
>      make[2]: *** [MLO.byteswap] Error 139
>      	      	  		       ^^^ error code for a SEGV
> 
> Turns out that the word-based byte-swapping loop in omapimage.c is to
> blame. With the loop condition
>        while (swapped <= (sbuf->st_size / sizeof(uint32_t)))
> there had been one-too-many iterations for all file sizes divisible by
> the sizeof(uint32_t).  I.e. we had 1 iteration for 0 bytes (and also 1
> through 3 bytes) and 2 iterations at 4 bytes... clearly overshooting
> on 0 and 4 bytes.
> 
> This commit fixes the calculation of an up-rounded word-count and
> makes sure to keep the zero-based loop-counter below the number of
> words to be processed.
> 
> References: 2614a20 ("common: command: tempory buffer should have size of command line buf")
> Fixes: 79b9ebb ("omapimage: Add support for byteswapped SPI images")
> Signed-off-by: Philipp Tomsich <philipp.tomsich at theobroma-systems.com>
> Reviewed-by: Martin Elshuber <martin.elshuber at theobroma-systems.com>

Applied to u-boot/master, thanks!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20171206/6b2a0aa6/attachment.sig>


More information about the U-Boot mailing list