Commit-ID: eac9eacee1602710dda47c517ad0b61ac6f429bf Gitweb: http://git.kernel.org/tip/eac9eacee1602710dda47c517ad0b61ac6f429bf Author: Frederic Weisbecker <fweisbec@xxxxxxxxx> AuthorDate: Sat, 21 May 2011 17:07:24 +0200 Committer: Frederic Weisbecker <fweisbec@xxxxxxxxx> CommitDate: Sun, 22 May 2011 03:12:13 +0200 perf tools: Check we are able to read the event size on mmap Check we have enough mmaped space to read the current event size from its headers, otherwise we may dereference some hell there. Signed-off-by: Frederic Weisbecker <fweisbec@xxxxxxxxx> Cc: Ingo Molnar <mingo@xxxxxxx> Cc: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx> Cc: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx> Cc: Stephane Eranian <eranian@xxxxxxxxxx> --- tools/perf/util/session.c | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-) diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c index fff6674..61746b5 100644 --- a/tools/perf/util/session.c +++ b/tools/perf/util/session.c @@ -1007,6 +1007,13 @@ remap: file_pos = file_offset + head; more: + /* + * Ensure we have enough space remaining to read + * the size of the event in the headers. + */ + if (head + sizeof(event->header) > mmap_size) + goto remap; + event = (union perf_event *)(buf + head); if (session->header.needs_swap) -- To unsubscribe from this list: send the line "unsubscribe linux-tip-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
![]() |