From 16a09253a2e225ae8a8bee76c4d7f6e3767a7e04 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Mon, 28 Jul 2008 23:25:33 +0200 Subject: save and restore errno where necessary --- libdaemon/dfork.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'libdaemon') diff --git a/libdaemon/dfork.c b/libdaemon/dfork.c index 14d2238..ff58659 100644 --- a/libdaemon/dfork.c +++ b/libdaemon/dfork.c @@ -316,7 +316,10 @@ pid_t daemon_fork(void) { dpid = (pid_t) -1; } + saved_errno = errno; close(pipe_fds[0]); + errno = saved_errno; + return dpid; } } @@ -329,6 +332,8 @@ int daemon_retval_init(void) { } void daemon_retval_done(void) { + int saved_errno = errno; + if (_daemon_retval_pipe[0] >= 0) close(_daemon_retval_pipe[0]); @@ -336,6 +341,8 @@ void daemon_retval_done(void) { close(_daemon_retval_pipe[1]); _daemon_retval_pipe[0] = _daemon_retval_pipe[1] = -1; + + errno = saved_errno; } int daemon_retval_send(int i) { -- cgit