Messages in this thread | | | Subject | Re: [PATCH] perf script: Fix obtaining next event | From | Ravi Bangoria <> | Date | Wed, 30 Oct 2019 15:16:10 +0530 |
| |
On 10/30/19 2:10 PM, Chandan Rajendra wrote: > The current code segfaults when perf.data file contains two or more > events. This happens due to incorrect pointer arithmetic being performed > in trace_find_next_event(). > > tep_handle->events is an array of pointers to 'struct tep_event'. The > pointer arithmetic interprets tep_handle->events as an array of 'struct > tep_event' elements. > > This commit replaces the usage of pointer arithmetic with calls to > tep_get_event(). > > Fixes: bb3dd7e ("tools lib traceevent, perf tools: Move struct tep_handler definition in a local header file") > Signed-off-by: Chandan Rajendra <chandanrlinux@gmail.com>
$ sudo ./perf record -e sched:sched_switch -e syscalls:sys_enter_openat -- make
Without patch: $ sudo ./perf script -g python Segmentation fault
With patch: $ sudo ./perf script -g python generated Python script: perf-script.py
Reviewed-and-tested-by: Ravi Bangoria <ravi.bangoria@linux.ibm.com>
| |