perf stat: Potential NULL dereference in print_aggr()
Subsystems (2)
PATCH 1/1 perf stat: Potential NULL dereference in print_aggr()
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 <[email protected]>
--- tools/perf/util/stat-display.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
tools/perf/util/stat-display.c +1 -1
@@ -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);
Signature · 1 line
2.18.0
Quoted 10 lines · Dan Carpenter
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 <[email protected]>
Fixes 86ee6e18f6cb ("perf stat: Refactor aggregation code")
Acked-by Jiri Olsa <[email protected]>
thanks,
jirka
Quoted 20 lines
--- tools/perf/util/stat-display.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)tools/perf/util/stat-display.c +1
-1@@ -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);Signature · 1 line
2.18.0