diff --git a/tools/image-host.c b/tools/image-host.c index 84095d760c1..05d8c898209 100644 --- a/tools/image-host.c +++ b/tools/image-host.c @@ -716,11 +716,20 @@ static int strlist_add(struct strlist *list, const char *str) { char *dup; - dup = strdup(str); - list->strings = realloc(list->strings, - (list->count + 1) * sizeof(char *)); if (!list || !str) return -1; + + dup = strdup(str); + if(!dup) + return -1; + + list->strings = realloc(list->strings, + (list->count + 1) * sizeof(char *)); + if (!list->strings) { + free(dup); + return -1; + } + list->strings[list->count++] = dup; return 0;