arr[0] = (char *)arg0;
while ((arr[n++] = va_arg(ap, char *)) != NULL) {
- arr = realloc(arr, sizeof(char *) * (n + 1));
- if (!arr)
+ char **narr = realloc(arr, sizeof(char *) * (n + 1));
+ if (!narr) {
+ free(arr);
return NULL;
+ }
+ arr = narr;
}
return arr;
}