aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2011-09-30 14:08:56 -0400
committerIngo Molnar <mingo@elte.hu>2011-09-30 14:08:56 -0400
commit9d3ec7a0c41d010153c9d20577cb1bcf9c4f65df (patch)
tree6966bd046c7029df48942bd9cc057f5eccfe5112
parent47ea91b4052d9e94b9dca5d7a3d947fbebd07ba9 (diff)
parent8e303f20f4b3611615118a22a737fd2dc7c4ef81 (diff)
Merge branch 'perf/urgent' of git://github.com/acmel/linux into perf/urgent
-rw-r--r--tools/perf/util/evsel.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c
index c5748c52318f..e389815078d3 100644
--- a/tools/perf/util/evsel.c
+++ b/tools/perf/util/evsel.c
@@ -449,6 +449,8 @@ int perf_event__parse_sample(const union perf_event *event, u64 type,
449 } 449 }
450 450
451 if (type & PERF_SAMPLE_RAW) { 451 if (type & PERF_SAMPLE_RAW) {
452 const u64 *pdata;
453
452 u.val64 = *array; 454 u.val64 = *array;
453 if (WARN_ONCE(swapped, 455 if (WARN_ONCE(swapped,
454 "Endianness of raw data not corrected!\n")) { 456 "Endianness of raw data not corrected!\n")) {
@@ -462,11 +464,12 @@ int perf_event__parse_sample(const union perf_event *event, u64 type,
462 return -EFAULT; 464 return -EFAULT;
463 465
464 data->raw_size = u.val32[0]; 466 data->raw_size = u.val32[0];
467 pdata = (void *) array + sizeof(u32);
465 468
466 if (sample_overlap(event, &u.val32[1], data->raw_size)) 469 if (sample_overlap(event, pdata, data->raw_size))
467 return -EFAULT; 470 return -EFAULT;
468 471
469 data->raw_data = &u.val32[1]; 472 data->raw_data = (void *) pdata;
470 } 473 }
471 474
472 return 0; 475 return 0;