diff options
author | Oleg Nesterov <oleg@tv-sign.ru> | 2005-11-09 10:22:13 -0800 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2005-11-10 21:18:55 -0800 |
commit | d212503f82d7ef3b63ed20ab97bb68a69616d06c (patch) | |
tree | f22cc66f7e4c9addcab60cc486f3728bd5cd3bc7 /kernel/signal.c | |
parent | 2feb75c74db778c244719a5736b2b1dde914bb0c (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/signal.c')
-rw-r--r-- | kernel/signal.c | 2 |
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); |