summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libdaemon/dfork.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/libdaemon/dfork.c b/libdaemon/dfork.c
index 5fe8b7b..70fce86 100644
--- a/libdaemon/dfork.c
+++ b/libdaemon/dfork.c
@@ -328,7 +328,9 @@ pid_t daemon_fork(void) {
if (atomic_read(pipe_fds[0], &dpid, sizeof(dpid)) != sizeof(dpid)) {
daemon_log(LOG_ERR, "Failed to read daemon PID.");
dpid = (pid_t) -1;
- }
+ errno = EINVAL;
+ } else if (dpid == (pid_t) -1)
+ errno = EIO;
saved_errno = errno;
close(pipe_fds[0]);