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

From: Arnaldo Carvalho de Melo <[email-masked]>
Date: Mon, 18 Mar 2019 13:16:19 -0300

Em Mon, Mar 18, 2019 at 11:08:12AM +0100, Jiri Olsa escreveu:
> 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 <[email-masked]>

Yeah, I'll go over all and apply, thanks a lot.

If you plan to work on the others, please first submit the ones that are
not related to the exit path, i.e. leave the ones that only take place
when exiting perf for a second batch, this way we'll get the more
important ones, that take place in normal operation, first.

- Arnaldo