tools: kwbimage: Verify size of image data
Part of image data is 4 byte checksum, so every image must contain at least 4 bytes. Verify it to prevent memory corruptions. Signed-off-by: Pali Rohár <pali@kernel.org> Reviewed-by: Stefan Roese <sr@denx.de>
This commit is contained in:
@@ -1745,7 +1745,7 @@ static int kwbimage_verify_header(unsigned char *ptr, int image_size,
|
|||||||
return -FDT_ERR_BADSTRUCTURE;
|
return -FDT_ERR_BADSTRUCTURE;
|
||||||
|
|
||||||
size = le32_to_cpu(mhdr->blocksize);
|
size = le32_to_cpu(mhdr->blocksize);
|
||||||
if (offset + size > image_size || size % 4 != 0)
|
if (size < 4 || offset + size > image_size || size % 4 != 0)
|
||||||
return -FDT_ERR_BADSTRUCTURE;
|
return -FDT_ERR_BADSTRUCTURE;
|
||||||
|
|
||||||
if (image_checksum32(ptr + offset, size - 4) !=
|
if (image_checksum32(ptr + offset, size - 4) !=
|
||||||
|
|||||||
Reference in New Issue
Block a user