[PATCH v1 00/13] perf python: Fix python extension bugs and memory leaks

From: Ian Rogers

Date: Tue Jun 23 2026 - 01:35:42 EST


This patch series addresses a number of leaks and python extension bugs
discovered during the review of the python scripting phase 1 refactoring
series.

These fixes have been separated from the scripting changes into their own
dedicated patch series to ease review and integration, as they address
regressions or existing bugs rather than adding new features.

The series breaks down the monolithic python extension fixes into discrete
logical patches addressing validation, initialization, and resource leaks.

Ian Rogers (13):
perf script: Fix metric_evlist leak in script_find_metrics
perf stat: Fix evsel_list leak in cmd_stat
perf top: Fix sb_evlist leak
perf python: Fix memory leak in pyrf_evlist__get_pollfd
perf synthetic-events: Fix uninitialized pthread_join
perf data: Fix directory file descriptor leak in perf_data__switch
perf test: Fix skiplist leak in cmd_test
perf python: Check counts_values size in set_values
perf python: Validate CPU and thread maps in pyrf_evsel__open
perf python: Validate attribute setters in pyrf_evsel
perf python: Zero initialize perf_data in pyrf_data__init
perf python: Add thread uninitialized checks
perf python: Fix MetricGroup return type in perf.pyi

tools/perf/builtin-script.c | 2 +-
tools/perf/builtin-stat.c | 9 ++-
tools/perf/builtin-top.c | 1 +
tools/perf/python/perf.pyi | 4 +-
tools/perf/tests/builtin-test.c | 5 +-
tools/perf/util/data.c | 3 +-
tools/perf/util/python.c | 114 +++++++++++++++++++++++++----
tools/perf/util/synthetic-events.c | 4 +-
8 files changed, 116 insertions(+), 26 deletions(-)

--
2.55.0.rc0.786.g65d90a0328-goog