summaryrefslogtreecommitdiff
path: root/run-command.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2011-05-06 11:01:04 -0700
committerJunio C Hamano <gitster@pobox.com>2011-05-06 11:01:04 -0700
commit3970fc5512ac52e798579cf734957a2fac852cfd (patch)
treea90d3cf7863dde8ea13a558a4edd0ff27aaa0577 /run-command.c
parent606ee4be54b5ef3c8593a71b4b1bd6b4ee2d323d (diff)
parenta111eb7808bfdb90286e54b9ccdaea4f3bec3102 (diff)
Merge branch 'jn/run-command-error-failure'
* jn/run-command-error-failure: run-command: handle short writes and EINTR in die_child tests: check error message from run_command
Diffstat (limited to 'run-command.c')
-rw-r--r--run-command.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/run-command.c b/run-command.c
index f91e446c86..70e8a249d0 100644
--- a/run-command.c
+++ b/run-command.c
@@ -67,21 +67,24 @@ 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.
+ */
+ xwrite(child_notifier, "", 1);
}
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);
+ write_in_full(child_err, "fatal: ", 7);
+ write_in_full(child_err, msg, len);
+ write_in_full(child_err, "\n", 1);
exit(128);
}
#endif