diff mbox series

[v5,26/29] image: Remove some #ifdefs from image-fit and image-fit-sig

Message ID 20210926014342.127913-20-sjg@chromium.org
State Accepted
Commit b53541f7f61d506c6b19b30357f471472831e9cb
Delegated to: Tom Rini
Headers show
Series image: Reduce #ifdefs and ad-hoc defines in image code (Part B) | expand

Commit Message

Simon Glass Sept. 26, 2021, 1:43 a.m. UTC
Drop the #ifdefs which are easy to remove without refactoring.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

(no changes since v1)

 common/Kconfig.boot    | 10 ++++++++++
 common/image-fit-sig.c |  8 ++------
 common/image-fit.c     |  7 ++++---
 3 files changed, 16 insertions(+), 9 deletions(-)

Comments

Tom Rini Oct. 9, 2021, 1:41 a.m. UTC | #1
On Sat, Sep 25, 2021 at 07:43:39PM -0600, Simon Glass wrote:

> Drop the #ifdefs which are easy to remove without refactoring.
> 
> Signed-off-by: Simon Glass <sjg@chromium.org>

Applied to u-boot/master, thanks!
diff mbox series

Patch

diff --git a/common/Kconfig.boot b/common/Kconfig.boot
index f23b9988521..9b84a8d005f 100644
--- a/common/Kconfig.boot
+++ b/common/Kconfig.boot
@@ -165,6 +165,16 @@  config SPL_FIT_SIGNATURE
 	select SPL_IMAGE_SIGN_INFO
 	select SPL_FIT_FULL_CHECK
 
+config SPL_FIT_SIGNATURE_MAX_SIZE
+	hex "Max size of signed FIT structures in SPL"
+	depends on SPL_FIT_SIGNATURE
+	default 0x10000000
+	help
+	  This option sets a max size in bytes for verified FIT uImages.
+	  A sane value of 256MB protects corrupted DTB structures from overlapping
+	  device memory. Assure this size does not extend past expected storage
+	  space.
+
 config SPL_LOAD_FIT
 	bool "Enable SPL loading U-Boot as a FIT (basic fitImage features)"
 	select SPL_FIT
diff --git a/common/image-fit-sig.c b/common/image-fit-sig.c
index e95e64bd2fe..4edebbf2d32 100644
--- a/common/image-fit-sig.c
+++ b/common/image-fit-sig.c
@@ -49,10 +49,8 @@  struct image_region *fit_region_make_list(const void *fit,
 	 * Use malloc() except in SPL (to save code size). In SPL the caller
 	 * must allocate the array.
 	 */
-#ifndef CONFIG_SPL_BUILD
-	if (!region)
+	if (!IS_ENABLED(CONFIG_SPL_BUILD) && !region)
 		region = calloc(sizeof(*region), count);
-#endif
 	if (!region)
 		return NULL;
 	for (i = 0; i < count; i++) {
@@ -72,12 +70,10 @@  static int fit_image_setup_verify(struct image_sign_info *info,
 	char *algo_name;
 	const char *padding_name;
 
-#ifndef USE_HOSTCC
-	if (fdt_totalsize(fit) > CONFIG_FIT_SIGNATURE_MAX_SIZE) {
+	if (fdt_totalsize(fit) > CONFIG_VAL(FIT_SIGNATURE_MAX_SIZE)) {
 		*err_msgp = "Total size too large";
 		return 1;
 	}
-#endif
 	if (fit_image_hash_get_algo(fit, noffset, &algo_name)) {
 		*err_msgp = "Can't get hash algo property";
 		return -1;
diff --git a/common/image-fit.c b/common/image-fit.c
index 3952ab749ad..5a377a7f85f 100644
--- a/common/image-fit.c
+++ b/common/image-fit.c
@@ -2009,9 +2009,6 @@  int fit_image_load(bootm_headers_t *images, ulong addr,
 	int type_ok, os_ok;
 	ulong load, load_end, data, len;
 	uint8_t os, comp;
-#ifndef USE_HOSTCC
-	uint8_t os_arch;
-#endif
 	const char *prop_name;
 	int ret;
 
@@ -2103,8 +2100,12 @@  int fit_image_load(bootm_headers_t *images, ulong addr,
 	}
 
 #ifndef USE_HOSTCC
+	{
+	uint8_t os_arch;
+
 	fit_image_get_arch(fit, noffset, &os_arch);
 	images->os.arch = os_arch;
+	}
 #endif
 
 	bootstage_mark(bootstage_id + BOOTSTAGE_SUB_CHECK_ALL);