Messages in this thread Patch in this message | | | From | Sonny Rao <> | Subject | [PATCH] perf: fix infinite loop with corrupted header | Date | Wed, 25 Sep 2013 22:20:36 -0700 |
| |
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
| |