Messages in this thread Patch in this message | | | From | Vince Weaver <> | Date | Tue, 23 Jul 2019 11:06:01 -0400 (EDT) | Subject | [patch] perf tool divide by zero error if f_header.attr_size==0 |
| |
Hello
so I have been having lots of trouble with hand-crafted perf.data files causing segfaults and the like, so I have started fuzzing the perf tool.
First issue found:
If f_header.attr_size is 0 in the perf.data file, then perf will crash with a divide-by-zero error.
Signed-off-by: Vince Weaver <vincent.weaver@maine.edu>
diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c index c24db7f4909c..26df60ee9460 100644 --- a/tools/perf/util/header.c +++ b/tools/perf/util/header.c @@ -3559,6 +3559,10 @@ int perf_session__read_header(struct perf_session *session) data->file.path); } + if (f_header.attr_size == 0) { + return -EINVAL; + } + nr_attrs = f_header.attrs.size / f_header.attr_size; lseek(fd, f_header.attrs.offset, SEEK_SET);
| |