diff --git a/master/master.c b/master/master.c index 8847255..fa1b40b 100644 --- a/master/master.c +++ b/master/master.c @@ -1076,10 +1076,17 @@ static void sigalrm_handler(int sig __attribute__((unused))) static void sighandler_setup(void) { struct sigaction action; - sigset_t all_signals; - - sigfillset(&all_signals); - sigprocmask(SIG_UNBLOCK, &all_signals, NULL); + sigset_t siglist; + + memset(&siglist, 0, sizeof(siglist)); + sigemptyset(&siglist); + sigaddset(&siglist, SIGHUP); + sigaddset(&siglist, SIGALRM); + sigaddset(&siglist, SIGQUIT); + sigaddset(&siglist, SIGTERM); + sigaddset(&siglist, SIGINT); + sigaddset(&siglist, SIGCHLD); + sigprocmask(SIG_UNBLOCK, &siglist, NULL); sigemptyset(&action.sa_mask); action.sa_flags = 0;