Re: [PATCH] perf stat: Potential NULL dereference in print_aggr()

From: Jiri Olsa
Date: Sun Oct 14 2018 - 10:05:42 EST


On Sat, Oct 13, 2018 at 01:19:40PM +0300, Dan Carpenter wrote:
> Smatch complains that:
>
> ./tools/perf/util/stat-display.c:616 print_aggr()
> error: we previously assumed 'config->aggr_map' could be null (see line 607)
>
> Not only that, but it looks like aggr_update_shadow() can Oops if
> "config->aggr_get_id" is NULL. The intent seems to have been to return
> if either of these pointers is NULL.
>
> Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>

Fixes: 86ee6e18f6cb ("perf stat: Refactor aggregation code")

Acked-by: Jiri Olsa <jolsa@xxxxxxxxxx>

thanks,
jirka

> ---
> tools/perf/util/stat-display.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/perf/util/stat-display.c b/tools/perf/util/stat-display.c
> index e7b4c44ebb62..db635c01d3a3 100644
> --- a/tools/perf/util/stat-display.c
> +++ b/tools/perf/util/stat-display.c
> @@ -604,7 +604,7 @@ static void print_aggr(struct perf_stat_config *config,
> u64 ena, run, val;
> bool first;
>
> - if (!(config->aggr_map || config->aggr_get_id))
> + if (!config->aggr_map || !config->aggr_get_id)
> return;
>
> aggr_update_shadow(config, evlist);
> --
> 2.18.0
>