From e8914d5d4bedb12bccf78a930b34b1564b3dbaac Mon Sep 17 00:00:00 2001 From: FRIGN Date: Thu, 11 Aug 2016 21:20:07 +0200 Subject: [PATCH] _exit() instead of exit() after failed exec die() calls exit(), but actually at this point the program could be in a state not allowing this. It's better to call _exit to stop the libc from calling any handlers that might fail at this moment anyway. --- sent.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sent.c b/sent.c index f6c57fb..a4d0cd2 100644 --- a/sent.c +++ b/sent.c @@ -150,7 +150,8 @@ filter(int fd, const char *cmd) close(fds[0]); close(fds[1]); execlp("sh", "sh", "-c", cmd, (char *)0); - die("sent: execlp sh -c '%s':", cmd); + fprintf(stderr, "sent: execlp sh -c '%s': %s\n", cmd, strerror(errno)); + _exit(1); } close(fds[1]); return fds[0];