[openwrt/openwrt] firmware-utils: mkmylofw: fix blocks padding

LEDE Commits lede-commits at lists.infradead.org
Tue Apr 13 13:01:12 BST 2021


rmilecki pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/d4f2c2914a6547ef6067dd0968c4970e913f17f0

commit d4f2c2914a6547ef6067dd0968c4970e913f17f0
Author: Rafał Miłecki <rafal at milecki.pl>
AuthorDate: Tue Apr 13 13:53:57 2021 +0200

    firmware-utils: mkmylofw: fix blocks padding
    
    The old code didn't make sense as it was using "len" variable which was
    guaranteed to be always 0. Loop right above broken code is:
    while (len > 0) { }
    
    With this recent ALIGN macro fix this resulted in subtracting block size
    from 0 and calling write_out_padding() with a negative length.
    
    To calculate amount of bytes needed for padding & alignment it should be
    enough to use % 4.
    
    Fixes: a2f66229450d ("firmware-utils: fix few random warnings")
    Signed-off-by: Rafał Miłecki <rafal at milecki.pl>
---
 tools/firmware-utils/src/mkmylofw.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/firmware-utils/src/mkmylofw.c b/tools/firmware-utils/src/mkmylofw.c
index 5722365ee3..93eab202d9 100644
--- a/tools/firmware-utils/src/mkmylofw.c
+++ b/tools/firmware-utils/src/mkmylofw.c
@@ -583,7 +583,7 @@ write_out_file(FILE *outfile, struct fw_block *block, uint32_t *crc)
 	fclose(f);
 
 	/* align next block on a 4 byte boundary */
-	len = ALIGN(len,4) - block->size;
+	len = block->size % 4;
 	if (write_out_padding(outfile, len, 0xFF, crc))
 		return -1;
 



More information about the lede-commits mailing list