AddressSanitizer (or ASan) and UndefinedBehaviorSanitizer (or UBSan) are very useful tools to detect program bugs. This series fixed some issues disclosed by ASan. AddressSanitizer (or ASan) is a GCC feature that detects memory corruption bugs such as buffer overflows or memory leaks. $ cd tools/perf $ make DEBUG=1 EXTRA_CFLAGS='-fno-omit-frame-pointer -fsanitize=address' $ ASAN_OPTIONS=log_path=asan.log ./perf record -a ASan outputs all detected issues into log file 'asan.log.<pid>'. Note that this only fixes parts of the detected issues. There are many remaining to be fixed[1]. [1] http://104.238.181.70:8080/asan.log.32555.txt Changbin Du (16): perf: add doc for how to build perf with Asan and UBSan perf: list: fix memory leak in function is_event_supported perf: fix errors under optimization level '-Og' perf: fix an error in config template perf: fix a memory leak in collect_config perf: fix memory leak in print_sdt_events() perf: top: fix heap-use-after-free issue perf: top: fix error handing in cmd_top() perf: missed a map__put() in error case perf: remove map from names tree in __maps__remove perf: purge all maps from the names tree perf: top: fix global-buffer-overflow issue perf: free all counts in perf_evsel__exit perf: fix a memory leak of cpu_map object perf: fix memory leak by expr__find_other perf: fix a memory leak in test__perf_evsel__tp_sched_test tools/lib/bpf/libbpf.c | 2 +- tools/perf/Documentation/Build.txt | 20 +++++++++ tools/perf/Documentation/perf-config.txt | 2 +- tools/perf/bench/epoll-ctl.c | 2 +- tools/perf/bench/epoll-wait.c | 2 +- tools/perf/builtin-top.c | 47 ++++++++++------------ tools/perf/tests/backward-ring-buffer.c | 2 +- tools/perf/tests/evsel-tp-sched.c | 1 + tools/perf/tests/expr.c | 5 ++- tools/perf/tests/openat-syscall-all-cpus.c | 4 +- tools/perf/util/build-id.c | 1 + tools/perf/util/config.c | 3 +- tools/perf/util/counts.c | 18 +++++++++ tools/perf/util/counts.h | 4 ++ tools/perf/util/evsel.c | 2 + tools/perf/util/hist.c | 4 +- tools/perf/util/map.c | 18 +++++++++ tools/perf/util/ordered-events.c | 2 + tools/perf/util/parse-events.c | 2 + tools/perf/util/stat.c | 18 --------- 20 files changed, 106 insertions(+), 53 deletions(-) -- 2.19.1