[PATCH] tools: image-host: fix memory leak of info.name in signature functions

Anton Moryakov ant.v.moryakov at gmail.com
Thu May 21 21:14:00 CEST 2026


Static analysis reported that info.name (allocated via strdup() in
fit_image_setup_sig()) is not freed in two functions:

1. fit_image_process_sig(): info.name leaked on error path and success path
2. fit_config_process_sig(): info.name leaked on error path and success path

Fix: add free(info.name) in both error paths (after fit_image_setup_sig()
failure) and at the end of successful execution paths.

Signed-off-by: Anton Moryakov <ant.v.moryakov at gmail.com>
---
 tools/image-host.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/tools/image-host.c b/tools/image-host.c
index 8b550af0dc1..1573adecc33 100644
--- a/tools/image-host.c
+++ b/tools/image-host.c
@@ -245,6 +245,7 @@ static int fit_image_process_sig(const char *keydir, const char *keyfile,
 	if (fit_image_setup_sig(&info, keydir, keyfile, fit, image_name,
 				noffset, require_keys ? "image" : NULL,
 				engine_id, algo_name))
+		free(info.name);
 		return -1;
 
 	node_name = fit_get_name(fit, noffset, NULL);
@@ -272,6 +273,7 @@ static int fit_image_process_sig(const char *keydir, const char *keyfile,
 		return -1;
 	}
 	free(value);
+	free(info.name);
 
 	/* Get keyname again, as FDT has changed and invalidated our pointer */
 	info.keyname = fdt_getprop(fit, noffset, FIT_KEY_HINT, NULL);
@@ -1094,6 +1096,7 @@ static int fit_config_process_sig(const char *keydir, const char *keyfile,
 	if (fit_image_setup_sig(&info, keydir, keyfile, fit, conf_name, noffset,
 				require_keys ? "conf" : NULL, engine_id,
 				algo_name))
+		free(info.name);
 		return -1;
 
 	ret = info.crypto->sign(&info, region, region_count, &value,
@@ -1122,6 +1125,7 @@ static int fit_config_process_sig(const char *keydir, const char *keyfile,
 	}
 	free(value);
 	free(region_prop);
+	free(info.name);
 
 	/* Get keyname again, as FDT has changed and invalidated our pointer */
 	info.keyname = fdt_getprop(fit, noffset, FIT_KEY_HINT, NULL);
-- 
2.39.2



More information about the U-Boot mailing list