public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] perf: fix infinite loop with corrupted header
@ 2013-09-26  5:20 Sonny Rao
  2013-09-26 13:34 ` David Ahern
  0 siblings, 1 reply; 7+ messages in thread
From: Sonny Rao @ 2013-09-26  5:20 UTC (permalink / raw)
  To: linux-kernel
  Cc: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo, Jiri Olsa,
	Namhyung Kim, Stephane Eranian, Sonny Rao

We recently ran into a corrupt perf data file which mostly looked okay
but the section size for data was set to 0.  This caused perf report to
get into an infinite loop in __perf_session_process_events().  Let's
just avoid this by bailing early and reporting it if there's an
invalid header.

Signed-off-by: Sonny Rao <sonnyrao@chromium.org>
---
 tools/perf/util/header.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c
index 26441d0..085ef76 100644
--- a/tools/perf/util/header.c
+++ b/tools/perf/util/header.c
@@ -2582,6 +2582,10 @@ int perf_file_header__read(struct perf_file_header *header,
 	ph->data_offset  = header->data.offset;
 	ph->data_size	 = header->data.size;
 	ph->feat_offset  = header->data.offset + header->data.size;
+
+	if (!header->data.size)
+		die("corrupted header, invalid size 0 for data section\n");
+
 	return 0;
 }
 
-- 
1.8.4


^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2013-09-27  1:33 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-09-26  5:20 [PATCH] perf: fix infinite loop with corrupted header Sonny Rao
2013-09-26 13:34 ` David Ahern
2013-09-26 13:46   ` Arnaldo Carvalho de Melo
2013-09-26 13:59     ` Namhyung Kim
2013-09-26 14:06       ` Arnaldo Carvalho de Melo
2013-09-27  1:33         ` Namhyung Kim
2013-09-26 17:33   ` Sonny Rao

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox