X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;ds=sidebyside;f=run-command.c;h=8619c769a93c48e724957c019af5765ebee6af9f;hb=642f85faab27adec13eced36cd7e7548311f6c87;hp=f91e446c86be8e27f98554567143d7ce6f934bd1;hpb=4b28cd9f2fb755cdfe1b97130e84644ae932988c;p=thirdparty%2Fgit.git diff --git a/run-command.c b/run-command.c index f91e446c86..8619c769a9 100644 --- a/run-command.c +++ b/run-command.c @@ -67,21 +67,26 @@ static int child_notifier = -1; static void notify_parent(void) { - ssize_t unused; - unused = write(child_notifier, "", 1); + /* + * execvp failed. If possible, we'd like to let start_command + * know, so failures like ENOENT can be handled right away; but + * otherwise, finish_command will still report the error. + */ + if (write(child_notifier, "", 1)) + ; /* yes, dear gcc -D_FORTIFY_SOURCE, there was an error. */ } static NORETURN void die_child(const char *err, va_list params) { char msg[4096]; - ssize_t unused; int len = vsnprintf(msg, sizeof(msg), err, params); if (len > sizeof(msg)) len = sizeof(msg); - unused = write(child_err, "fatal: ", 7); - unused = write(child_err, msg, len); - unused = write(child_err, "\n", 1); + if (write(child_err, "fatal: ", 7) || + write(child_err, msg, len) || + write(child_err, "\n", 1)) + ; /* yes, gcc -D_FORTIFY_SOURCE, we know there was an error. */ exit(128); } #endif