Browse Source

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 <[email protected]>
Rafał Miłecki 4 years ago
parent
commit
d4f2c2914a
1 changed files with 1 additions and 1 deletions
  1. 1 1
      tools/firmware-utils/src/mkmylofw.c

+ 1 - 1
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;