summaryrefslogtreecommitdiff
path: root/accel-pppd
diff options
context:
space:
mode:
authorDmitry Kozlov <xeb@mail.ru>2014-06-27 22:23:23 +0400
committerDmitry Kozlov <xeb@mail.ru>2014-06-27 22:24:06 +0400
commite2ca2a98a2708d8d03dd243d4819469c711a5d91 (patch)
tree1565b61c20021d24ffb8311cbc00d09c780fafde /accel-pppd
parentd5776039b12c3c1016b3bb6ccede69bacf23ae1e (diff)
downloadaccel-ppp-e2ca2a98a2708d8d03dd243d4819469c711a5d91.tar.gz
accel-ppp-e2ca2a98a2708d8d03dd243d4819469c711a5d91.zip
log_file: block all signals in log thread
With unblocked signals log thread may catch SIGCHLD which causes zombie process.
Diffstat (limited to 'accel-pppd')
-rw-r--r--accel-pppd/logs/log_file.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/accel-pppd/logs/log_file.c b/accel-pppd/logs/log_file.c
index c759c32e..518f2c99 100644
--- a/accel-pppd/logs/log_file.c
+++ b/accel-pppd/logs/log_file.c
@@ -116,6 +116,12 @@ static void *log_thread(void *unused)
int iov_cnt;
LIST_HEAD(msg_list);
LIST_HEAD(free_list);
+ sigset_t set;
+
+ sigfillset(&set);
+ sigdelset(&set, SIGKILL);
+ sigdelset(&set, SIGSTOP);
+ pthread_sigmask(SIG_BLOCK, &set, NULL);
while (1) {
pthread_mutex_lock(&lock);