summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorFrancois Berder <[email protected]>2026-01-19 15:49:06 +0100
committerTom Rini <[email protected]>2026-01-28 14:41:21 -0600
commit3a53a03f50118e329a0f38bd28ea5f7d8e22147a (patch)
treed8a4e5d6f43680630456396952642090f07726aa /tools
parentb8a820ac98fda6005ae131d89026c60bf7c9c535 (diff)
tools: Handle realloc failure in strlist_add
If realloc fails, list->strings was set to NULL and it would create a leak. This commit ensures that if we cannot add a string to the list, the list stays in a good state. Signed-off-by: Francois Berder <[email protected]>
Diffstat (limited to 'tools')
-rw-r--r--tools/image-host.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/tools/image-host.c b/tools/image-host.c
index 54df86316ae..48d69191c92 100644
--- a/tools/image-host.c
+++ b/tools/image-host.c
@@ -733,6 +733,7 @@ static void strlist_free(struct strlist *list)
static int strlist_add(struct strlist *list, const char *str)
{
char *dup;
+ char **tmp = NULL;
if (!list || !str)
return -1;
@@ -741,13 +742,13 @@ static int strlist_add(struct strlist *list, const char *str)
if(!dup)
return -1;
- list->strings = realloc(list->strings,
- (list->count + 1) * sizeof(char *));
- if (!list->strings) {
+ tmp = realloc(list->strings, (list->count + 1) * sizeof(char *));
+ if (!tmp) {
free(dup);
return -1;
}
+ list->strings = tmp;
list->strings[list->count++] = dup;
return 0;