diff options
author | Oleg Nesterov <oleg@tv-sign.ru> | 2005-11-10 09:22:18 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-11-10 12:57:19 -0500 |
commit | 7ed0175a462c4c30f6df6fac1cccac058f997739 (patch) | |
tree | 30e894294260f8595565b620a7bb0b9cf8d1d69c /kernel | |
parent | 759979ab17512a061c3a3e870f091af27ccdcbfb (diff) |
[PATCH] Don't auto-reap traced children
If a task is being traced we never auto-reap it even if it might look
like its parent doesn't care. The tracer obviously _does_ care.
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/signal.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/signal.c b/kernel/signal.c index 1bf3c39d6109..80789a59b4db 100644 --- a/kernel/signal.c +++ b/kernel/signal.c | |||
@@ -1499,7 +1499,7 @@ void do_notify_parent(struct task_struct *tsk, int sig) | |||
1499 | 1499 | ||
1500 | psig = tsk->parent->sighand; | 1500 | psig = tsk->parent->sighand; |
1501 | spin_lock_irqsave(&psig->siglock, flags); | 1501 | spin_lock_irqsave(&psig->siglock, flags); |
1502 | if (sig == SIGCHLD && | 1502 | if (!tsk->ptrace && sig == SIGCHLD && |
1503 | (psig->action[SIGCHLD-1].sa.sa_handler == SIG_IGN || | 1503 | (psig->action[SIGCHLD-1].sa.sa_handler == SIG_IGN || |
1504 | (psig->action[SIGCHLD-1].sa.sa_flags & SA_NOCLDWAIT))) { | 1504 | (psig->action[SIGCHLD-1].sa.sa_flags & SA_NOCLDWAIT))) { |
1505 | /* | 1505 | /* |