]> Sergey Matveev's repositories - public-inbox.git/commitdiff
daemon: disable USR2/TTIN/TTOU/WINCH in workers
authorEric Wong <e@80x24.org>
Tue, 5 Jul 2016 13:05:41 +0000 (13:05 +0000)
committerEric Wong <e@80x24.org>
Wed, 6 Jul 2016 07:12:45 +0000 (07:12 +0000)
If using a master/worker setup, a careless user could be trying
to signal all processes using "killall".  This may trigger bad
side-effects; but try to limit the side-effects as much as
possible.

lib/PublicInbox/Daemon.pm

index 512bb2083c5c65f84f9627c455780c19b7abc62b..7849f9c0aecd4fa581bcbdcb4c6fe9fa40caad19 100644 (file)
@@ -449,7 +449,8 @@ sub daemon_loop ($$) {
        $SIG{QUIT} = $SIG{INT} = $SIG{TERM} = *worker_quit;
        $SIG{USR1} = *reopen_logs;
        $SIG{HUP} = $refresh;
-       $SIG{$_} = 'DEFAULT' for qw(CHLD USR2 TTIN TTOU WINCH);
+       $SIG{CHLD} = 'DEFAULT';
+       $SIG{$_} = 'IGNORE' for qw(USR2 TTIN TTOU WINCH);
        # this calls epoll_create:
        @listeners = map {
                PublicInbox::Listener->new($_, $post_accept)