[PATCH 00/16] fix some perf issues detected by ASan

From: Changbin Du
Date: Sat Mar 16 2019 - 04:06:27 EST


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