diff options
author | Stephane Eranian <eranian@google.com> | 2009-11-23 21:40:49 -0800 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-11-24 08:55:27 +0100 |
commit | 184d3da8ef0ca552dffa0fdd35c046e058a2cf9a (patch) | |
tree | 4f7bc687cea6ce6ee13a8beec59d8ae7081dfb64 /kernel | |
parent | b23d5767a5818caec8547d0bce1588b02bdecd30 (diff) | |
download | linux-184d3da8ef0ca552dffa0fdd35c046e058a2cf9a.tar.gz linux-184d3da8ef0ca552dffa0fdd35c046e058a2cf9a.tar.bz2 linux-184d3da8ef0ca552dffa0fdd35c046e058a2cf9a.zip |
perf_events: Fix bogus copy_to_user() in perf_event_read_group()
When using an event group, the value and id for non leaders events
were wrong due to invalid offset into the outgoing buffer.
Signed-off-by: Stephane Eranian <eranian@google.com>
Acked-by: Peter Zijlstra <peterz@infradead.org>
Cc: paulus@samba.org
Cc: perfmon2-devel@lists.sourceforge.net
LKML-Reference: <4b0b71e1.0508d00a.075e.ffff84a3@mx.google.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/perf_event.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/perf_event.c b/kernel/perf_event.c index 9425c9600c89..accfd7bfe387 100644 --- a/kernel/perf_event.c +++ b/kernel/perf_event.c @@ -1831,7 +1831,7 @@ static int perf_event_read_group(struct perf_event *event, size = n * sizeof(u64); - if (copy_to_user(buf + size, values, size)) { + if (copy_to_user(buf + ret, values, size)) { ret = -EFAULT; goto unlock; } |