diff options
author | Denys Vlasenko <dvlasenk@redhat.com> | 2010-11-03 13:33:09 +0100 |
---|---|---|
committer | Denys Vlasenko <dvlasenk@redhat.com> | 2010-11-03 13:33:09 +0100 |
commit | 72fc15ea204311f061276d8a1df1489d720af61c (patch) | |
tree | 15aa3460eac54aabd91fd07eca2c9c66a23e95a8 /src/daemon/Daemon.cpp | |
parent | 3cfc642450ab5b19a3e07a2b1815a63a396c3dff (diff) | |
download | abrt-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.cpp | 4 |
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 */ |