From: "Pali Rohár" <pali@kernel.org>
To: Simon Glass <sjg@chromium.org>
Cc: u-boot@lists.denx.de
Subject: [PATCH u-boot 2/2] tools: default_image: Accept images with padding
Date: Sun, 29 Jan 2023 17:44:11 +0100 [thread overview]
Message-ID: <20230129164411.9795-2-pali@kernel.org> (raw)
In-Reply-To: <20230129164411.9795-1-pali@kernel.org>
If image file is stored on flash partition then it contains padding, which
is not part of the image itself. Image data size is stored in the image
header. So use image size from the header instead of expecting that total
image file size is size of the header plus size of the image data. This
allows dumpimage to parse image files with padding (e.g. dumped from flash
partition).
Signed-off-by: Pali Rohár <pali@kernel.org>
---
tools/default_image.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/tools/default_image.c b/tools/default_image.c
index 4aa9a33241cb..0996e1dfe9c8 100644
--- a/tools/default_image.c
+++ b/tools/default_image.c
@@ -81,7 +81,13 @@ static int image_verify_header(unsigned char *ptr, int image_size,
}
data = (const unsigned char *)ptr + sizeof(struct legacy_img_hdr);
- len = image_size - sizeof(struct legacy_img_hdr);
+ len = image_get_data_size(hdr);
+
+ if (image_size - sizeof(struct legacy_img_hdr) < len) {
+ debug("%s: Bad image size: \"%s\" is no valid image\n",
+ params->cmdname, params->imagefile);
+ return -FDT_ERR_BADSTRUCTURE;
+ }
checksum = be32_to_cpu(hdr->ih_dcrc);
if (crc32(0, data, len) != checksum) {
--
2.20.1
next prev parent reply other threads:[~2023-01-29 16:44 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-29 16:44 [PATCH u-boot 1/2] tools: default_image: Verify header size Pali Rohár
2023-01-29 16:44 ` Pali Rohár [this message]
2023-01-30 15:50 ` [PATCH u-boot 2/2] tools: default_image: Accept images with padding Simon Glass
2023-02-06 19:43 ` Tom Rini
2023-02-06 21:47 ` Pali Rohár
2023-02-07 16:53 ` Tom Rini
2023-02-06 22:00 ` Simon Glass
2023-01-30 15:50 ` [PATCH u-boot 1/2] tools: default_image: Verify header size Simon Glass
2023-02-07 16:52 ` Tom Rini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230129164411.9795-2-pali@kernel.org \
--to=pali@kernel.org \
--cc=sjg@chromium.org \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox