Skip to content
This repository was archived by the owner on Sep 11, 2019. It is now read-only.

Commit 42dfa45

Browse files
committed
perf evsel: Free evsel->counts in perf_evsel__exit()
Using gcc's ASan, Changbin reports: ================================================================= ==7494==ERROR: LeakSanitizer: detected memory leaks Direct leak of 48 byte(s) in 1 object(s) allocated from: #0 0x7f0333a89138 in calloc (/usr/lib/x86_64-linux-gnu/libasan.so.5+0xee138) GrapheneOS#1 0x5625e5330a5e in zalloc util/util.h:23 GrapheneOS#2 0x5625e5330a9b in perf_counts__new util/counts.c:10 GrapheneOS#3 0x5625e5330ca0 in perf_evsel__alloc_counts util/counts.c:47 GrapheneOS#4 0x5625e520d8e5 in __perf_evsel__read_on_cpu util/evsel.c:1505 GrapheneOS#5 0x5625e517a985 in perf_evsel__read_on_cpu /home/work/linux/tools/perf/util/evsel.h:347 GrapheneOS#6 0x5625e517ad1a in test__openat_syscall_event tests/openat-syscall.c:47 GrapheneOS#7 0x5625e51528e6 in run_test tests/builtin-test.c:358 GrapheneOS#8 0x5625e5152baf in test_and_print tests/builtin-test.c:388 GrapheneOS#9 0x5625e51543fe in __cmd_test tests/builtin-test.c:583 GrapheneOS#10 0x5625e515572f in cmd_test tests/builtin-test.c:722 GrapheneOS#11 0x5625e51c3fb8 in run_builtin /home/changbin/work/linux/tools/perf/perf.c:302 GrapheneOS#12 0x5625e51c44f7 in handle_internal_command /home/changbin/work/linux/tools/perf/perf.c:354 GrapheneOS#13 0x5625e51c48fb in run_argv /home/changbin/work/linux/tools/perf/perf.c:398 GrapheneOS#14 0x5625e51c5069 in main /home/changbin/work/linux/tools/perf/perf.c:520 GrapheneOS#15 0x7f033214d09a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a) Indirect leak of 72 byte(s) in 1 object(s) allocated from: #0 0x7f0333a89138 in calloc (/usr/lib/x86_64-linux-gnu/libasan.so.5+0xee138) GrapheneOS#1 0x5625e532560d in zalloc util/util.h:23 GrapheneOS#2 0x5625e532566b in xyarray__new util/xyarray.c:10 GrapheneOS#3 0x5625e5330aba in perf_counts__new util/counts.c:15 GrapheneOS#4 0x5625e5330ca0 in perf_evsel__alloc_counts util/counts.c:47 GrapheneOS#5 0x5625e520d8e5 in __perf_evsel__read_on_cpu util/evsel.c:1505 GrapheneOS#6 0x5625e517a985 in perf_evsel__read_on_cpu /home/work/linux/tools/perf/util/evsel.h:347 GrapheneOS#7 0x5625e517ad1a in test__openat_syscall_event tests/openat-syscall.c:47 GrapheneOS#8 0x5625e51528e6 in run_test tests/builtin-test.c:358 GrapheneOS#9 0x5625e5152baf in test_and_print tests/builtin-test.c:388 GrapheneOS#10 0x5625e51543fe in __cmd_test tests/builtin-test.c:583 GrapheneOS#11 0x5625e515572f in cmd_test tests/builtin-test.c:722 GrapheneOS#12 0x5625e51c3fb8 in run_builtin /home/changbin/work/linux/tools/perf/perf.c:302 GrapheneOS#13 0x5625e51c44f7 in handle_internal_command /home/changbin/work/linux/tools/perf/perf.c:354 GrapheneOS#14 0x5625e51c48fb in run_argv /home/changbin/work/linux/tools/perf/perf.c:398 GrapheneOS#15 0x5625e51c5069 in main /home/changbin/work/linux/tools/perf/perf.c:520 GrapheneOS#16 0x7f033214d09a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a) His patch took care of evsel->prev_raw_counts, but the above backtraces are about evsel->counts, so fix that instead. Reported-by: Changbin Du <[email protected]> Cc: Alexei Starovoitov <[email protected]> Cc: Daniel Borkmann <[email protected]> Cc: Jiri Olsa <[email protected]> Cc: Namhyung Kim <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Steven Rostedt (VMware) <[email protected]> Link: https://lkml.kernel.org/n/[email protected] Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
1 parent 1e5b0cf commit 42dfa45

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
@@ -1292,6 +1292,7 @@ void perf_evsel__exit(struct perf_evsel *evsel)
12921292
{
12931293
assert(list_empty(&evsel->node));
12941294
assert(evsel->evlist == NULL);
1295+
perf_evsel__free_counts(evsel);
12951296
perf_evsel__free_fd(evsel);
12961297
perf_evsel__free_id(evsel);
12971298
perf_evsel__free_config_terms(evsel);

0 commit comments

Comments
 (0)