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

From: Jiri Olsa
Date: Mon Mar 18 2019 - 06:08:22 EST


On Sat, Mar 16, 2019 at 04:05:40PM +0800, Changbin Du wrote:
> 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

awesome.. thanks a lot

Reviewed-by: Jiri Olsa <jolsa@xxxxxxxxxx>

jirka

>
> 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
>