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 <fberder@outlook.fr>
This commit is contained in:
Francois Berder
2026-01-19 15:49:06 +01:00
committed by Tom Rini
parent b8a820ac98
commit 3a53a03f50

View File

@@ -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;