Messages in this thread | | | Date | Mon, 24 Jul 2023 18:31:43 -0300 | From | Arnaldo Carvalho de Melo <> | Subject | Re: [PATCH 1/1] perf dlfilter: Initialize addr_location before passing it to thread__find_symbol_fb() |
| |
Em Mon, Jul 24, 2023 at 02:16:05PM -0700, Ian Rogers escreveu: > On Mon, Jul 24, 2023 at 2:09 PM Arnaldo Carvalho de Melo > <acme@kernel.org> wrote: > > > > As thread__find_symbol_fb() will end up calling thread__find_map() and > > it in turn will call these on uninitialized memory: > > > > maps__zput(al->maps); > > map__zput(al->map); > > thread__zput(al->thread); > > Normally there would be a addr_location__exit. It looks here like most > values are copied in al_to_d_al, which copies reference counted values > without doing appropriate gets. Perhaps add the gets in al_to_d_al and > add the exit to make it clear there can't be addr_location related > leaks here.
I'll do that as well and add the addr_location__exit() then send a V2.
- Arnaldo
> Thanks, > Ian > > > Fixes: 0dd5041c9a0eaf8c ("perf addr_location: Add init/exit/copy functions") > > Cc: Adrian Hunter <adrian.hunter@intel.com> > > Cc: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com> > > Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com> > > Cc: Disha Goel <disgoel@linux.vnet.ibm.com> > > Cc: Ian Rogers <irogers@google.com> > > Cc: Jiri Olsa <jolsa@kernel.org> > > Cc: Kajol Jain <kjain@linux.ibm.com> > > Cc: Madhavan Srinivasan <maddy@linux.ibm.com> > > Cc: Namhyung Kim <namhyung@kernel.org> > > Link: https://lore.kernel.org/lkml/ > > Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> > > --- > > tools/perf/util/dlfilter.c | 1 + > > 1 file changed, 1 insertion(+) > > > > diff --git a/tools/perf/util/dlfilter.c b/tools/perf/util/dlfilter.c > > index 46f74b2344dbb34c..798a53d7e6c9dfc5 100644 > > --- a/tools/perf/util/dlfilter.c > > +++ b/tools/perf/util/dlfilter.c > > @@ -166,6 +166,7 @@ static __s32 dlfilter__resolve_address(void *ctx, __u64 address, struct perf_dlf > > if (!thread) > > return -1; > > > > + addr_location__init(&al); > > thread__find_symbol_fb(thread, d->sample->cpumode, address, &al); > > > > al_to_d_al(&al, &d_al); > > -- > > 2.37.1 > >
--
- Arnaldo
| |