summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPali Rohár <pali@kernel.org>2023-01-09 01:35:13 +0100
committerStefan Roese <sr@denx.de>2023-03-01 06:39:17 +0100
commitee3da92d85aea4dad6d6d7c82b23407b85547325 (patch)
treead547b5044069a79b3bb8e4b346489673409825e
parent226abde8677537de55905d88973eef1a71b4d3e0 (diff)
tools: kwbimage: Fix generating of kwbimage v0 header checksum
Checksum for v0 image must be generated after filling all fields in the main header. Otherwise it would be invalid. Exactly same problem for v1 images was already fixed in the past in commit 9203c73895ab ("tools: kwbimage: Fix checksum calculation for v1 images"). Fixes: 5c61710c9880 ("tools: kwbimage: Properly set srcaddr in kwbimage v0") Signed-off-by: Pali Rohár <pali@kernel.org>
-rw-r--r--tools/kwbimage.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/tools/kwbimage.c b/tools/kwbimage.c
index b6deb978f61..1128c934dda 100644
--- a/tools/kwbimage.c
+++ b/tools/kwbimage.c
@@ -1009,8 +1009,6 @@ static void *image_create_v0(size_t *imagesz, struct image_tool_params *params,
e = image_find_option(IMAGE_CFG_NAND_BADBLK_LOCATION);
if (e)
main_hdr->nandbadblklocation = e->nandbadblklocation;
- main_hdr->checksum = image_checksum8(image,
- sizeof(struct main_hdr_v0));
/*
* For SATA srcaddr is specified in number of sectors.
@@ -1049,6 +1047,9 @@ static void *image_create_v0(size_t *imagesz, struct image_tool_params *params,
sizeof(struct ext_hdr_v0));
}
+ main_hdr->checksum = image_checksum8(image,
+ sizeof(struct main_hdr_v0));
+
*imagesz = headersz;
return image;
}