diff --git a/svr-chansession.c b/svr-chansession.c index 0b3e8333298d280c7e0cf223e33e01d10429c2b6..e6ad713cf7df03d9c38e8725a6ef8402d4588742 100644 --- a/svr-chansession.c +++ b/svr-chansession.c @@ -137,6 +137,7 @@ static void sesssigchild_handler(int UNUSED(dummy)) { sa_chld.sa_handler = sesssigchild_handler; sa_chld.sa_flags = SA_NOCLDSTOP; + sa_chld.sa_mask = 0; sigaction(SIGCHLD, &sa_chld, NULL); TRACE(("leave sigchld handler")) } diff --git a/svr-main.c b/svr-main.c index d3fa9afc5079545ea0210e19ad476e6e546f3957..ff3691fef2dcf6e402a2d1a0c86a6510eebfd75d 100644 --- a/svr-main.c +++ b/svr-main.c @@ -370,6 +370,7 @@ static void commonsetup() { /* catch and reap zombie children */ sa_chld.sa_handler = sigchld_handler; sa_chld.sa_flags = SA_NOCLDSTOP; + sa_chld.sa_mask = 0; if (sigaction(SIGCHLD, &sa_chld, NULL) < 0) { dropbear_exit("signal() error"); }