aboutsummaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorOleg Nesterov <oleg@tv-sign.ru>2005-11-09 10:22:13 -0800
committerGreg Kroah-Hartman <gregkh@suse.de>2005-11-10 21:18:55 -0800
commitd212503f82d7ef3b63ed20ab97bb68a69616d06c (patch)
treef22cc66f7e4c9addcab60cc486f3728bd5cd3bc7 /kernel
parent2feb75c74db778c244719a5736b2b1dde914bb0c (diff)
[PATCH] - fix signal->live leak in copy_process()
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: Chris Wright <chrisw@osdl.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/signal.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/kernel/signal.c b/kernel/signal.c
index f2b96b08fb4..6904bbbfe11 100644
--- a/kernel/signal.c
+++ b/kernel/signal.c
@@ -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);