diff --git a/tools/perf/util/python.c b/tools/perf/util/python.c index efc8f88db5cf..e25c3fcaeccc 100644 --- a/tools/perf/util/python.c +++ b/tools/perf/util/python.c @@ -610,6 +610,11 @@ static PyObject *pyrf_event__new(union perf_event *event) event->header.type == PERF_RECORD_SWITCH_CPU_WIDE)) return NULL; + // FIXME this better be dynamic or we need to parse everything + // before calling perf_mmap__consume(), including tracepoint fields. + if (sizeof(pevent->event) < event->header.size) + return NULL; + ptype = pyrf_event__type[event->header.type]; pevent = PyObject_New(struct pyrf_event, ptype); if (pevent != NULL)