Re: [PATCH 12/13] perf c2c: Free format list entries when releasing c2c hist entries
From: Arnaldo Carvalho de Melo
Date: Mon Jun 15 2026 - 15:57:31 EST
On Mon, Jun 15, 2026 at 10:23:45AM -0700, Ian Rogers wrote:
> On Fri, Jun 12, 2026 at 3:25 PM Arnaldo Carvalho de Melo
> <acme@xxxxxxxxxx> wrote:
> >
> > From: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
> >
> > c2c_hists__init() calls hpp_list__parse() which allocates and registers
> > format entries on hists->list. When c2c_he_free() destroys a c2c hist
> > entry, it deletes the histogram entries and frees the hists container but
> > never unregisters the format list entries, leaking them.
> >
> > Call perf_hpp__reset_output_field() before freeing the hists to properly
> > unregister and free all format entries.
> >
> > Fixes: f485e33c4543ac31 ("perf c2c report: Add cacheline hists processing")
> > Reported-by: sashiko-bot <sashiko-bot@xxxxxxxxxx>
> > Closes: https://sashiko.dev/finding/41
>
> I don't think these are public "Closes:" links and should probably be stripped.
Yeap, will remove and add a memory for this not to be added again,
better to make sure that whatever is added _is_ accessible, this one
isn't :-\
- Arnaldo
> Thanks,
> Ian
>
> > Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
> > Assisted-by: Claude Opus 4.6 <noreply@xxxxxxxxxxxxx>
> > Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
> > ---
> > tools/perf/builtin-c2c.c | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/tools/perf/builtin-c2c.c b/tools/perf/builtin-c2c.c
> > index e205f58b2f3d3786..07c7e8fb315e6cf3 100644
> > --- a/tools/perf/builtin-c2c.c
> > +++ b/tools/perf/builtin-c2c.c
> > @@ -185,6 +185,7 @@ static void c2c_he_free(void *he)
> > c2c_he = container_of(he, struct c2c_hist_entry, he);
> > if (c2c_he->hists) {
> > hists__delete_entries(&c2c_he->hists->hists);
> > + perf_hpp__reset_output_field(&c2c_he->hists->list);
> > zfree(&c2c_he->hists);
> > }
> >
> > --
> > 2.54.0
> >