]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
tools: kwbimage: Fix generating of kwbimage v0 header checksum
authorPali Rohár <pali@kernel.org>
Mon, 9 Jan 2023 00:35:13 +0000 (01:35 +0100)
committerStefan Roese <sr@denx.de>
Wed, 1 Mar 2023 05:39:17 +0000 (06:39 +0100)
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>
tools/kwbimage.c

index b6deb978f611b1b0b1886564cfab076030e7c1b4..1128c934dda916693042d05797997be378d6fd1d 100644 (file)
@@ -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;
 }