* [PATCH] perf_events: fix NULL point in free_event()
@ 2010-09-13 14:36 Stephane Eranian
2010-09-13 14:55 ` Peter Zijlstra
0 siblings, 1 reply; 2+ messages in thread
From: Stephane Eranian @ 2010-09-13 14:36 UTC (permalink / raw)
To: linux-kernel
Cc: peterz, mingo, paulus, davem, fweisbec, perfmon2-devel, eranian,
eranian, robert.richter
Without the following patch, perf top as non-root and
paranoid cpu set causes a NULL pointer dereference in
free_event() because event->ctx is NULL.
free_event() may be called, on the error path, before
event->ctx is set.
Signed-off-by: Stephane Eranian <eranian@google.com>
diff --git a/kernel/perf_event.c b/kernel/perf_event.c
index f29b525..a7d5e7a 100644
--- a/kernel/perf_event.c
+++ b/kernel/perf_event.c
@@ -2150,7 +2150,8 @@ static void free_event(struct perf_event *event)
if (event->destroy)
event->destroy(event);
- put_ctx(event->ctx);
+ if (event->ctx)
+ put_ctx(event->ctx);
call_rcu(&event->rcu_head, free_event_rcu);
}
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] perf_events: fix NULL point in free_event()
2010-09-13 14:36 [PATCH] perf_events: fix NULL point in free_event() Stephane Eranian
@ 2010-09-13 14:55 ` Peter Zijlstra
0 siblings, 0 replies; 2+ messages in thread
From: Peter Zijlstra @ 2010-09-13 14:55 UTC (permalink / raw)
To: eranian
Cc: linux-kernel, mingo, paulus, davem, fweisbec, perfmon2-devel,
eranian, robert.richter
On Mon, 2010-09-13 at 16:36 +0200, Stephane Eranian wrote:
> Without the following patch, perf top as non-root and
> paranoid cpu set causes a NULL pointer dereference in
> free_event() because event->ctx is NULL.
Yeah, its already on its way.. Cyrill also reported this.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2010-09-13 14:56 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-09-13 14:36 [PATCH] perf_events: fix NULL point in free_event() Stephane Eranian
2010-09-13 14:55 ` Peter Zijlstra
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox