On Sat, Jun 6, 2026 at 5:20 AM Tanushree Shah <[email protected]> wrote: > > When samples are skipped due to time filtering in process_sample_event(), > the early return path bypasses addr_location__exit(), causing memory leaks > of thread, map, and maps references acquired by machine__resolve(). > > These references must be released through addr_location__exit() before > returning. > > Fixes: 8e746e95c3e4 ("perf data: Allow filtering conversion by time range") > Signed-off-by: Tanushree Shah <[email protected]>
Reviewed-by: Ian Rogers <[email protected]> Thanks, Ian > --- > tools/perf/util/data-convert-json.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/tools/perf/util/data-convert-json.c > b/tools/perf/util/data-convert-json.c > index d526c91312ed..6a8d00c80394 100644 > --- a/tools/perf/util/data-convert-json.c > +++ b/tools/perf/util/data-convert-json.c > @@ -177,6 +177,7 @@ static int process_sample_event(const struct perf_tool > *tool, > > if (perf_time__ranges_skip_sample(c->ptime_range, c->range_num, > sample->time)) { > ++c->skipped; > + addr_location__exit(&al); > return 0; > } > > -- > 2.47.3 >
