From 50aba7c323215a210b1fd154b63f6f61d4aa165a Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Mon, 28 Jul 2008 23:23:11 +0200 Subject: add a bit more error checking --- libdaemon/dfork.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/libdaemon/dfork.c b/libdaemon/dfork.c index 464af49..be57c09 100644 --- a/libdaemon/dfork.c +++ b/libdaemon/dfork.c @@ -131,14 +131,21 @@ pid_t daemon_fork(void) { sa_new.sa_handler = sigchld; sa_new.sa_flags = SA_RESTART; + if (sigemptyset(&ss_new) < 0) { + daemon_log(LOG_ERR, "sigemptyset() failed: %s", strerror(errno)); + return (pid_t) -1; + } + + if (sigaddset(&ss_new, SIGCHLD) < 0) { + daemon_log(LOG_ERR, "sigaddset() failed: %s", strerror(errno)); + return (pid_t) -1; + } + if (sigaction(SIGCHLD, &sa_new, &sa_old) < 0) { daemon_log(LOG_ERR, "sigaction() failed: %s", strerror(errno)); return (pid_t) -1; } - sigemptyset(&ss_new); - sigaddset(&ss_new, SIGCHLD); - if (sigprocmask(SIG_UNBLOCK, &ss_new, &ss_old) < 0) { daemon_log(LOG_ERR, "sigprocmask() failed: %s", strerror(errno)); -- cgit