If parse_events__scanner() collects no entry, perf_evlist__last(evlist) is invalid. Then setting of cmdline_group_boundary touches invalid.
It could happend in currect BPF implementation. See [1]. Although it can be fixed, for safety reason it whould be better to introduce this check. Instead of checking number of entries, check data.list instead, so we can add dummy evsel here. [1]: http://lkml.kernel.org/n/[email protected] Signed-off-by: Wang Nan <[email protected]> Cc: Alexei Starovoitov <[email protected]> Cc: Masami Hiramatsu <[email protected]> Cc: Namhyung Kim <[email protected]> Cc: Zefan Li <[email protected]> Cc: [email protected] Cc: Arnaldo Carvalho de Melo <[email protected]> Link: http://lkml.kernel.org/r/[email protected] --- tools/perf/util/parse-events.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c index d826e6f..14cd7e3 100644 --- a/tools/perf/util/parse-events.c +++ b/tools/perf/util/parse-events.c @@ -1143,10 +1143,14 @@ int parse_events(struct perf_evlist *evlist, const char *str, int entries = data.idx - evlist->nr_entries; struct perf_evsel *last; + if (!list_empty(&data.list)) { + last = list_entry(data.list.prev, + struct perf_evsel, node); + last->cmdline_group_boundary = true; + } + perf_evlist__splice_list_tail(evlist, &data.list, entries); evlist->nr_groups += data.nr_groups; - last = perf_evlist__last(evlist); - last->cmdline_group_boundary = true; return 0; } -- 2.1.0 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

