perf_events: Fix bogus copy_to_user() in perf_event_read_group()
authorStephane Eranian <[email protected]>
Tue, 24 Nov 2009 05:40:49 +0000 (21:40 -0800)
committerIngo Molnar <[email protected]>
Tue, 24 Nov 2009 07:55:27 +0000 (08:55 +0100)
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 <[email protected]>
Acked-by: Peter Zijlstra <[email protected]>
Cc: [email protected]
Cc: [email protected]
LKML-Reference: <4b0b71e1.0508d00a.075e.ffff84a3@mx.google.com>
Signed-off-by: Ingo Molnar <[email protected]>
kernel/perf_event.c

index 9425c9600c89526e7506d7b84bbb779f9b632e76..accfd7bfe3877292259d5005ec5f2c0a33a869fc 100644 (file)
@@ -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;
                }