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;
}
child_errno_fail:
err = errno;
- write(execfail[1], &err, sizeof(err));
+ /* Gcc's warn-unused-result fail. */
+ if (write(execfail[1], &err, sizeof(err)))
+ ;
exit(127);
}