summaryrefslogtreecommitdiffstats
path: root/kernel/fork.c
diff options
context:
space:
mode:
authorMike Galbraith <efault@gmx.de>2010-12-31 09:32:30 +0100
committerIngo Molnar <mingo@elte.hu>2011-01-04 15:10:36 +0100
commit101e5f77bf35679809586e250b6c62193d2ed179 (patch)
tree7756de0a3d1d859e05a85134dee2d8e70616d287 /kernel/fork.c
parentsched, autogroup: Fix potential access to freed memory (diff)
downloadlinux-101e5f77bf35679809586e250b6c62193d2ed179.tar.xz
linux-101e5f77bf35679809586e250b6c62193d2ed179.zip
sched, autogroup: Fix reference leak
The cgroup exit mess also uncovered a struct autogroup reference leak. copy_process() was simply freeing vs putting the signal_struct, stranding a reference. Signed-off-by: Mike Galbraith <efault@gmx.de> Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Oleg Nesterov <oleg@redhat.com> LKML-Reference: <1293784350.6839.2.camel@marge.simson.net> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/fork.c')
-rw-r--r--kernel/fork.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/fork.c b/kernel/fork.c
index b6f2475f1e83..067244495966 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -1317,7 +1317,7 @@ bad_fork_cleanup_mm:
}
bad_fork_cleanup_signal:
if (!(clone_flags & CLONE_THREAD))
- free_signal_struct(p->signal);
+ put_signal_struct(p->signal);
bad_fork_cleanup_sighand:
__cleanup_sighand(p->sighand);
bad_fork_cleanup_fs: