提交 2e518181 编写于 作者: L Linus Torvalds

Merge branch 'perf-urgent-for-linus' of git://tesla.tglx.de/git/linux-2.6-tip

* 'perf-urgent-for-linus' of git://tesla.tglx.de/git/linux-2.6-tip:
  perf tools: Fix raw sample reading
...@@ -449,6 +449,8 @@ int perf_event__parse_sample(const union perf_event *event, u64 type, ...@@ -449,6 +449,8 @@ int perf_event__parse_sample(const union perf_event *event, u64 type,
} }
if (type & PERF_SAMPLE_RAW) { if (type & PERF_SAMPLE_RAW) {
const u64 *pdata;
u.val64 = *array; u.val64 = *array;
if (WARN_ONCE(swapped, if (WARN_ONCE(swapped,
"Endianness of raw data not corrected!\n")) { "Endianness of raw data not corrected!\n")) {
...@@ -462,11 +464,12 @@ int perf_event__parse_sample(const union perf_event *event, u64 type, ...@@ -462,11 +464,12 @@ int perf_event__parse_sample(const union perf_event *event, u64 type,
return -EFAULT; return -EFAULT;
data->raw_size = u.val32[0]; data->raw_size = u.val32[0];
pdata = (void *) array + sizeof(u32);
if (sample_overlap(event, &u.val32[1], data->raw_size)) if (sample_overlap(event, pdata, data->raw_size))
return -EFAULT; return -EFAULT;
data->raw_data = &u.val32[1]; data->raw_data = (void *) pdata;
} }
return 0; return 0;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册