]> git.sur5r.net Git - i3/i3/commitdiff
Properly initialize sigaction struct
authorhwangcc23 <hwangcc@csie.nctu.edu.tw>
Thu, 31 Aug 2017 14:48:33 +0000 (22:48 +0800)
committerMichael Stapelberg <michael@stapelberg.de>
Wed, 6 Sep 2017 05:36:13 +0000 (07:36 +0200)
The code in handle_signal() wasn't clearing the struct sigaction before passing it to sigaction().
This meant that we would block a random set of signals while executing the default handler, or jump to the uninitialized __sa_sigaction__ (instead of sa_handler).
Initialize properly as we do in setup_signal_handler().

src/sighandler.c

index b1e7d166f7631d371e775541a78a3a541832677d..1a161d2a2dd5a5890a7cf657b668b5aa77703083 100644 (file)
@@ -305,6 +305,8 @@ void handle_signal(int sig, siginfo_t *info, void *data) {
 
     struct sigaction action;
     action.sa_handler = SIG_DFL;
+    action.sa_flags = 0;
+    sigemptyset(&action.sa_mask);
     sigaction(sig, &action, NULL);
     raised_signal = sig;