[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