Skip to content

Commit 3f6a74b

Browse files
committed
perf evsel: Free evsel->filter on the destructor
Noticed with: make EXTRA_CFLAGS="-fsanitize=address" BUILD_BPF_SKEL=1 CORESIGHT=1 O=/tmp/build/perf-tools-next -C tools/perf install-bin Direct leak of 45 byte(s) in 1 object(s) allocated from: #0 0x7f213f87243b in strdup (/lib64/libasan.so.8+0x7243b) SamirMulani#1 0x63d15f in evsel__set_filter util/evsel.c:1371 SamirMulani#2 0x63d15f in evsel__append_filter util/evsel.c:1387 SamirMulani#3 0x63d15f in evsel__append_tp_filter util/evsel.c:1400 SamirMulani#4 0x62cd52 in evlist__append_tp_filter util/evlist.c:1145 SamirMulani#5 0x62cd52 in evlist__append_tp_filter_pids util/evlist.c:1196 SamirMulani#6 0x541e49 in trace__set_filter_loop_pids /home/acme/git/perf-tools/tools/perf/builtin-trace.c:3646 SamirMulani#7 0x541e49 in trace__set_filter_pids /home/acme/git/perf-tools/tools/perf/builtin-trace.c:3670 SamirMulani#8 0x541e49 in trace__run /home/acme/git/perf-tools/tools/perf/builtin-trace.c:3970 SamirMulani#9 0x541e49 in cmd_trace /home/acme/git/perf-tools/tools/perf/builtin-trace.c:5141 SamirMulani#10 0x5ef1a2 in run_builtin /home/acme/git/perf-tools/tools/perf/perf.c:323 SamirMulani#11 0x4196da in handle_internal_command /home/acme/git/perf-tools/tools/perf/perf.c:377 SamirMulani#12 0x4196da in run_argv /home/acme/git/perf-tools/tools/perf/perf.c:421 SamirMulani#13 0x4196da in main /home/acme/git/perf-tools/tools/perf/perf.c:537 torvalds#14 0x7f213e84a50f in __libc_start_call_main (/lib64/libc.so.6+0x2750f) Free it on evsel__exit(). Acked-by: Ian Rogers <[email protected]> Cc: Adrian Hunter <[email protected]> Cc: Jiri Olsa <[email protected]> Cc: Namhyung Kim <[email protected]> Link: https://lore.kernel.org/lkml/[email protected] Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
1 parent ccff6d1 commit 3f6a74b

File tree

1 file changed

+1
-0
lines changed

1 file changed

+1
-0
lines changed

tools/perf/util/evsel.c

+1
Original file line numberDiff line numberDiff line change
@@ -1474,6 +1474,7 @@ void evsel__exit(struct evsel *evsel)
14741474
perf_thread_map__put(evsel->core.threads);
14751475
zfree(&evsel->group_name);
14761476
zfree(&evsel->name);
1477+
zfree(&evsel->filter);
14771478
zfree(&evsel->pmu_name);
14781479
zfree(&evsel->group_pmu_name);
14791480
zfree(&evsel->unit);

0 commit comments

Comments
 (0)