RE: [PATCH] perf tools: Don't set leader if parser doesn't collect an evsel

From: åæéå / HIRAMATUïMASAMI
Date: Wed Sep 02 2015 - 01:57:17 EST


> From: Wang Nan [mailto:wangnan0@xxxxxxxxxx]
>
> Similar to patch 'perf tools: Don't set cmdline_group_boundary if no
> evsel is collected', in case when parser collects no evsel (at this
> point it shouldn't happen), parse_events__set_leader() is not safe.
>
> This patch checks list_empty becore calling __perf_evlist__set_leader()
> for safty reason.
>
> Signed-off-by: Wang Nan <wangnan0@xxxxxxxxxx>
> Cc: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
> Cc: Alexei Starovoitov <ast@xxxxxxxxxxxx>
> Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
> Cc: Masami Hiramatsu <masami.hiramatsu.pt@xxxxxxxxxxx>
> Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
> Cc: Zefan Li <lizefan@xxxxxxxxxx>
> Cc: pi3orama@xxxxxxx
> ---
>
> I'd like to queue this patch into my next pull request. Since it is not
> a real bug, it may be dropped.
>
> ---
> tools/perf/util/parse-events.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c
> index f2c0317..836d226 100644
> --- a/tools/perf/util/parse-events.c
> +++ b/tools/perf/util/parse-events.c
> @@ -793,6 +793,9 @@ void parse_events__set_leader(char *name, struct list_head *list)
> {
> struct perf_evsel *leader;
>
> + if (list_empty(list))

Would we need to warn/debug something here?

Thank you,

> + return;
> +
> __perf_evlist__set_leader(list);
> leader = list_entry(list->next, struct perf_evsel, node);
> leader->group_name = name ? strdup(name) : NULL;
> --
> 1.8.3.4