_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.
This commit is contained in:
FRIGN 2016-08-11 21:20:07 +02:00 committed by Markus Teich
parent cd10166b5e
commit e8914d5d4b

3
sent.c
View File

@ -150,7 +150,8 @@ filter(int fd, const char *cmd)
close(fds[0]); close(fds[0]);
close(fds[1]); close(fds[1]);
execlp("sh", "sh", "-c", cmd, (char *)0); 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]); close(fds[1]);
return fds[0]; return fds[0];