From f5477752e18df32571728e36772db1cf1038a7b8 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Mon, 28 Jul 2008 23:24:56 +0200 Subject: add more error checking --- libdaemon/dfork.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/libdaemon/dfork.c b/libdaemon/dfork.c index b0a99dc..14d2238 100644 --- a/libdaemon/dfork.c +++ b/libdaemon/dfork.c @@ -298,7 +298,15 @@ pid_t daemon_fork(void) { pid_t dpid; close(pipe_fds[1]); - waitpid(pid, NULL, WUNTRACED); + + if (waitpid(pid, NULL, WUNTRACED) < 0) { + saved_errno = errno; + close(pipe_fds[0]); + sigaction(SIGCHLD, &sa_old, NULL); + sigprocmask(SIG_SETMASK, &ss_old, NULL); + errno = saved_errno; + return -1; + } sigprocmask(SIG_SETMASK, &ss_old, NULL); sigaction(SIGCHLD, &sa_old, NULL); -- cgit