diff options
author | Matt Johnston <matt@ucc.asn.au> | 2011-12-04 05:41:46 +0800 |
---|---|---|
committer | Matt Johnston <matt@ucc.asn.au> | 2011-12-04 05:41:46 +0800 |
commit | a15fc009daf64d5563f6669d72bc7946da12a03b (patch) | |
tree | 847cb16220a193fef5cf67451074aee38b2bb2f0 | |
parent | 6c4390c8486cf6927274133a771d6d3de75efd50 (diff) |
- Initialise sa_mask properly
-rw-r--r-- | debug.h | 6 | ||||
-rw-r--r-- | svr-chansession.c | 3 | ||||
-rw-r--r-- | svr-main.c | 2 |
3 files changed, 6 insertions, 5 deletions
@@ -31,7 +31,7 @@ /* Work well for valgrind - don't clear environment, be nicer with signals * etc. Don't use this normally, it might cause problems */ -/* #define DEBUG_VALGRIND */ +#define DEBUG_VALGRIND /* Define this to compile in trace debugging printf()s. * You'll need to run programs with "-v" to turn this on. @@ -39,7 +39,7 @@ * Caution: Don't use this in an unfriendly environment (ie unfirewalled), * since the printing may not sanitise strings etc. This will add a reasonable * amount to your executable size. */ -/*#define DEBUG_TRACE */ +#define DEBUG_TRACE /* All functions writing to the cleartext payload buffer call * CHECKCLEARTOWRITE() before writing. This is only really useful if you're @@ -69,7 +69,7 @@ /* To debug with GDB it is easier to run with no forking of child processes. You will need to pass "-F" as well. */ -/* #define DEBUG_NOFORK */ +#define DEBUG_NOFORK /* For testing as non-root on shadowed systems, include the crypt of a password diff --git a/svr-chansession.c b/svr-chansession.c index 4d6d4fe..9fd49c1 100644 --- a/svr-chansession.c +++ b/svr-chansession.c @@ -137,7 +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; + sigemptyset(&sa_chld.sa_mask); sigaction(SIGCHLD, &sa_chld, NULL); TRACE(("leave sigchld handler")) } @@ -981,6 +981,7 @@ void svr_chansessinitialise() { svr_ses.lastexit.exitpid = -1; /* Nothing has exited yet */ sa_chld.sa_handler = sesssigchild_handler; sa_chld.sa_flags = SA_NOCLDSTOP; + sigemptyset(&sa_chld.sa_mask); if (sigaction(SIGCHLD, &sa_chld, NULL) < 0) { dropbear_exit("signal() error"); } @@ -370,7 +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; + sigemptyset(&sa_chld.sa_mask); if (sigaction(SIGCHLD, &sa_chld, NULL) < 0) { dropbear_exit("signal() error"); } |