From: Peter Zijlstra Date: Mon, 28 Mar 2011 11:13:56 +0000 (+0200) Subject: perf: Fix task_struct reference leak X-Git-Tag: v2.6.38.3~58 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=80b9edca1c11ec8118ab30451af9c1d492770c90;p=thirdparty%2Fkernel%2Fstable.git perf: Fix task_struct reference leak commit fd1edb3aa2c1d92618d8f0c6d15d44ea41fcac6a upstream. sys_perf_event_open() had an imbalance in the number of task refs it took causing memory leakage Cc: Jiri Olsa Cc: Oleg Nesterov Signed-off-by: Peter Zijlstra LKML-Reference: Signed-off-by: Ingo Molnar Signed-off-by: Greg Kroah-Hartman --- diff --git a/kernel/perf_event.c b/kernel/perf_event.c index f81f9d6395ad0..07fcc8568fac8 100644 --- a/kernel/perf_event.c +++ b/kernel/perf_event.c @@ -5917,6 +5917,11 @@ SYSCALL_DEFINE5(perf_event_open, goto err_alloc; } + if (task) { + put_task_struct(task); + task = NULL; + } + /* * Look up the group leader (we will attach this event to it): */