[PATCH] fix ->signal->live leak in copy_process()
authorOleg Nesterov <oleg@tv-sign.ru>
Sat, 29 Oct 2005 15:37:40 +0000 (19:37 +0400)
committerLinus Torvalds <torvalds@g5.osdl.org>
Sat, 29 Oct 2005 17:28:13 +0000 (10:28 -0700)
exit_signal() (called from copy_process's error path) should decrement
->signal->live, otherwise forking process will miss 'group_dead' in
do_exit().

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
kernel/signal.c

index f2b96b08fb44726d5673bf65750d4c1d9951ccd9..6904bbbfe116985d1710f04fcfd5792a536d382f 100644 (file)
@@ -406,6 +406,8 @@ void __exit_signal(struct task_struct *tsk)
 
 void exit_signal(struct task_struct *tsk)
 {
+       atomic_dec(&tsk->signal->live);
+
        write_lock_irq(&tasklist_lock);
        __exit_signal(tsk);
        write_unlock_irq(&tasklist_lock);