[PATCH] Don't auto-reap traced children
authorOleg Nesterov <oleg@tv-sign.ru>
Thu, 10 Nov 2005 14:22:18 +0000 (17:22 +0300)
committerLinus Torvalds <torvalds@g5.osdl.org>
Thu, 10 Nov 2005 17:57:19 +0000 (09:57 -0800)
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>
kernel/signal.c

index 1bf3c39d61092209bd66c51e9ba53e7bd24b7d04..80789a59b4dbc6553a21b6f8075f803ad76fc5be 100644 (file)
@@ -1499,7 +1499,7 @@ void do_notify_parent(struct task_struct *tsk, int sig)
 
        psig = tsk->parent->sighand;
        spin_lock_irqsave(&psig->siglock, flags);
-       if (sig == SIGCHLD &&
+       if (!tsk->ptrace && sig == SIGCHLD &&
            (psig->action[SIGCHLD-1].sa.sa_handler == SIG_IGN ||
             (psig->action[SIGCHLD-1].sa.sa_flags & SA_NOCLDWAIT))) {
                /*