common: Add NULL checks for xrealloc in make_string cli_hush.c

- Check return value of xrealloc for NULL.
- Free allocated memory and return NULL if xrealloc fails.
- Prevent NULL pointer dereference in strlen and strcat.

Triggers found by static analyzer Svace.

Signed-off-by: Anton Moryakov <ant.v.moryakov@gmail.com>
This commit is contained in:
Anton Moryakov 2025-02-07 01:01:23 +03:00 committed by Tom Rini
parent bdf056441d
commit b4df7003df

View File

@ -3626,7 +3626,13 @@ static char *make_string(char **inp, int *nonnull)
noeval = 1;
for (n = 0; inp[n]; n++) {
p = insert_var_value_sub(inp[n], noeval);
str = xrealloc(str, (len + strlen(p) + (2 * nonnull[n])));
char *new_str = xrealloc(str, (len + strlen(p) + (2 * nonnull[n])));
if (!new_str) {
free(str);
if (p != inp[n]) free(p);
return NULL;
}
str = new_str;
if (n) {
strcat(str, " ");
} else {