X-Git-Url: http://git.ozlabs.org/?a=blobdiff_plain;f=ccan%2Fpipecmd%2Fpipecmd.c;h=32772a83bc7b69c96cff57747aa779771f2e7604;hb=f6557ca6537bc4d37fb4be215184a632533ba4e7;hp=42c6689445876e5b832520bd55a1e1aecf288c43;hpb=97a1ba3d6fac93e680e3d95cef930dea4fdd0822;p=ccan diff --git a/ccan/pipecmd/pipecmd.c b/ccan/pipecmd/pipecmd.c index 42c66894..32772a83 100644 --- a/ccan/pipecmd/pipecmd.c +++ b/ccan/pipecmd/pipecmd.c @@ -16,9 +16,12 @@ static char **gather_args(const char *arg0, va_list ap) 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; } @@ -119,7 +122,10 @@ pid_t pipecmdarr(int *fd_fromchild, int *fd_tochild, int *fd_errfromchild, 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); }