aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2014-02-04 11:14:27 +0100
committerMartin Willi <martin@revosec.ch>2014-02-06 15:57:36 +0100
commit1df1430146ac80db8966a57254b70c32b0b85f3f (patch)
treea4680249d5abd02d25cb805e780ad4174cec49db
parent0edd13b6c85af9baa2d870e82b796f11c5020857 (diff)
downloadstrongswan-1df1430146ac80db8966a57254b70c32b0b85f3f.tar.bz2
strongswan-1df1430146ac80db8966a57254b70c32b0b85f3f.tar.xz
charon-cmd: Block SIGUSR1 on worker threads
To properly shut down charon-cmd with leak reports, only the main thread should catch SIGUSR1 to shut down the application. Work threads should ignore SIGUSR1 to avoid any hard application termination.
-rw-r--r--src/charon-cmd/charon-cmd.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/charon-cmd/charon-cmd.c b/src/charon-cmd/charon-cmd.c
index 5f4787b58..0c24fd146 100644
--- a/src/charon-cmd/charon-cmd.c
+++ b/src/charon-cmd/charon-cmd.c
@@ -389,6 +389,7 @@ int main(int argc, char *argv[])
sigaddset(&action.sa_mask, SIGINT);
sigaddset(&action.sa_mask, SIGTERM);
sigaddset(&action.sa_mask, SIGHUP);
+ sigaddset(&action.sa_mask, SIGUSR1);
sigaction(SIGSEGV, &action, NULL);
sigaction(SIGILL, &action, NULL);
sigaction(SIGBUS, &action, NULL);