summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2008-07-28 23:21:31 +0200
committerLennart Poettering <lennart@poettering.net>2008-07-28 23:21:31 +0200
commita2dc819630731a9833e3bf22117e06b129306085 (patch)
treebd2943d283bfca9e309d8a791358969f47d5c177
parent255e56d0508293858cdabc785fbd4a0f6e0c9f6b (diff)
save and restore errno in destructor
-rw-r--r--libdaemon/dsignal.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/libdaemon/dsignal.c b/libdaemon/dsignal.c
index 2593d42..f538395 100644
--- a/libdaemon/dsignal.c
+++ b/libdaemon/dsignal.c
@@ -116,6 +116,8 @@ int daemon_signal_init(int s, ...) {
}
void daemon_signal_done(void) {
+ int saved_errno = errno;
+
if (_signal_pipe[0] != -1)
close(_signal_pipe[0]);
@@ -123,6 +125,8 @@ void daemon_signal_done(void) {
close(_signal_pipe[1]);
_signal_pipe[0] = _signal_pipe[1] = -1;
+
+ errno = saved_errno;
}
int daemon_signal_next(void) {