tools: kwbimage: Verify supported image version
authorPali Rohár <pali@kernel.org>
Wed, 11 Aug 2021 08:14:14 +0000 (10:14 +0200)
committerStefan Roese <sr@denx.de>
Wed, 1 Sep 2021 06:07:04 +0000 (08:07 +0200)
Only image versions 0 and 1 are supported. Verify it in
kwbimage_verify_header() function.

Signed-off-by: Pali Rohár <pali@kernel.org>
Reviewed-by: Stefan Roese <sr@denx.de>
tools/kwbimage.c

index 00cb338..542779e 100644 (file)
@@ -1678,9 +1678,7 @@ static int kwbimage_verify_header(unsigned char *ptr, int image_size,
                        if (checksum != ext_hdr->checksum)
                                return -FDT_ERR_BADSTRUCTURE;
                }
-       }
-
-       if (image_version((void *)ptr) == 1) {
+       } else if (image_version((void *)ptr) == 1) {
                struct main_hdr_v1 *mhdr = (struct main_hdr_v1 *)ptr;
                uint32_t offset;
                uint32_t size;
@@ -1750,6 +1748,8 @@ static int kwbimage_verify_header(unsigned char *ptr, int image_size,
                if (image_checksum32(ptr + offset, size - 4) !=
                    *(uint32_t *)(ptr + offset + size - 4))
                        return -FDT_ERR_BADSTRUCTURE;
+       } else {
+               return -FDT_ERR_BADSTRUCTURE;
        }
 
        return 0;