diff options
author | Jianhui Zhao <zhaojh329@gmail.com> | 2023-10-20 11:59:34 +0800 |
---|---|---|
committer | Daniel Golle <daniel@makrotopia.org> | 2023-10-31 22:18:19 +0000 |
commit | 1157b8c1f1a37fe81fc652e4f7037ef5990fda4f (patch) | |
tree | 1b03d39f026be7a4dc16a0d5f9162ce72f08bfe6 | |
parent | 89184b15cfce4aaffac8cda87c2fa74f829ace42 (diff) | |
download | upstream-1157b8c1f1a37fe81fc652e4f7037ef5990fda4f.tar.gz upstream-1157b8c1f1a37fe81fc652e4f7037ef5990fda4f.tar.bz2 upstream-1157b8c1f1a37fe81fc652e4f7037ef5990fda4f.zip |
uboot-mediatek: fix determine the size of an uImage.FIT using 'imsz' or 'imszb'.
It must read the entire image for previous code of 'imsz' or 'imszb'.
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
Suggested-by: Chuanhong Guo <gch981213@gmail.com>
(cherry picked from commit 3bbc1d5fba1d700917138334a48c16bafdf48de9)
-rw-r--r-- | package/boot/uboot-mediatek/patches/200-cmd-add-imsz-and-imszb.patch | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/package/boot/uboot-mediatek/patches/200-cmd-add-imsz-and-imszb.patch b/package/boot/uboot-mediatek/patches/200-cmd-add-imsz-and-imszb.patch index 574259fb39..ae7623086e 100644 --- a/package/boot/uboot-mediatek/patches/200-cmd-add-imsz-and-imszb.patch +++ b/package/boot/uboot-mediatek/patches/200-cmd-add-imsz-and-imszb.patch @@ -70,7 +70,7 @@ { --- a/boot/image-fit.c +++ b/boot/image-fit.c -@@ -2051,6 +2051,49 @@ static const char *fit_get_image_type_pr +@@ -2051,6 +2051,47 @@ static const char *fit_get_image_type_pr return "unknown"; } @@ -93,11 +93,8 @@ + max_size = hdrsize; + + images_noffset = fdt_path_offset(fit, FIT_IMAGES_PATH); -+ if (images_noffset < 0) { -+ printf("Can't find images parent node '%s' (%s)\n", -+ FIT_IMAGES_PATH, fdt_strerror(images_noffset)); -+ return 0; -+ } ++ if (images_noffset < 0) ++ goto out; + + for (ndepth = 0, + noffset = fdt_next_node(fit, images_noffset, &ndepth); @@ -106,7 +103,7 @@ + if (ndepth == 1) { + ret = fit_image_get_data_and_size(fit, noffset, &data, &data_size); + if (ret) -+ return 0; ++ goto out; + + img_total = data_size + (data - fit); + @@ -114,6 +111,7 @@ + } + } + ++out: + return max_size; +} + |