perf stat: Fix NULL pointer dereference

[ Upstream commit c0c652fc705de75f4ba52e93053acc1ed3933e74 ]

If config->aggr_map is NULL and config->aggr_get_id is not NULL,
the function print_aggr() will still calling arrg_update_shadow(),
which can result in accessing the invalid pointer.

Fixes: 088519f318 ("perf stat: Move the display functions to stat-display.c")
Signed-off-by: Hongbo Yao <yaohongbo@huawei.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wei Li <liwei391@huawei.com>
Link: https://lore.kernel.org/lkml/20200608163625.GC3073@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
Hongbo Yao 2020-06-05 17:17:40 +08:00 committed by Greg Kroah-Hartman
parent 676634f1a8
commit aa7baef530

View File

@ -661,7 +661,7 @@ static void print_aggr(struct perf_stat_config *config,
int s;
bool first;
if (!(config->aggr_map || config->aggr_get_id))
if (!config->aggr_map || !config->aggr_get_id)
return;
aggr_update_shadow(config, evlist);
@ -1140,7 +1140,7 @@ static void print_percore(struct perf_stat_config *config,
int s;
bool first = true;
if (!(config->aggr_map || config->aggr_get_id))
if (!config->aggr_map || !config->aggr_get_id)
return;
for (s = 0; s < config->aggr_map->nr; s++) {