diff options
| author | Francois Berder <[email protected]> | 2026-01-19 15:49:06 +0100 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2026-01-28 14:41:21 -0600 |
| commit | 3a53a03f50118e329a0f38bd28ea5f7d8e22147a (patch) | |
| tree | d8a4e5d6f43680630456396952642090f07726aa /tools | |
| parent | b8a820ac98fda6005ae131d89026c60bf7c9c535 (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.c | 7 |
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; |
