summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2009-10-18 03:55:37 +0200
committerLennart Poettering <lennart@poettering.net>2009-10-18 03:56:10 +0200
commit177db9cf9a7a27a10f427369f4b4ff851a03bcf7 (patch)
tree269f8bfd230e1e1bdcf465929b2f3a0e167039d9
parente81e87f8d408d965b3baab14910eb0b08c428600 (diff)
dfork: set errno properly in some error conditions
-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]);