summaryrefslogtreecommitdiffstats
path: root/src/daemon/Daemon.cpp
diff options
context:
space:
mode:
authorDenys Vlasenko <dvlasenk@redhat.com>2010-11-03 13:33:09 +0100
committerDenys Vlasenko <dvlasenk@redhat.com>2010-11-03 13:33:09 +0100
commit72fc15ea204311f061276d8a1df1489d720af61c (patch)
tree15aa3460eac54aabd91fd07eca2c9c66a23e95a8 /src/daemon/Daemon.cpp
parent3cfc642450ab5b19a3e07a2b1815a63a396c3dff (diff)
downloadabrt-72fc15ea204311f061276d8a1df1489d720af61c.tar.gz
abrt-72fc15ea204311f061276d8a1df1489d720af61c.tar.xz
abrt-72fc15ea204311f061276d8a1df1489d720af61c.zip
save/restore errno in signal handler
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
Diffstat (limited to 'src/daemon/Daemon.cpp')
-rw-r--r--src/daemon/Daemon.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/daemon/Daemon.cpp b/src/daemon/Daemon.cpp
index ffc60a8f..79828fd9 100644
--- a/src/daemon/Daemon.cpp
+++ b/src/daemon/Daemon.cpp
@@ -504,6 +504,8 @@ static int Lock()
static void handle_signal(int signo)
{
+ int save_errno = errno;
+
// Enable for debugging only, malloc/printf are unsafe in signal handlers
//VERB3 log("Got signal %d", signo);
@@ -513,6 +515,8 @@ static void handle_signal(int signo)
* won't change it under us */
if (s_signal_pipe_write >= 0)
write(s_signal_pipe_write, &l_sig_caught, 1);
+
+ errno = save_errno;
}
/* Signal pipe handler */