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@milecki.pl>
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;