[PATCH v2 04/16] perf python: Fix memory leak in pyrf_evlist__get_pollfd

From: Ian Rogers

Date: Wed Jun 24 2026 - 01:18:02 EST


Fix a Python list object leak in pyrf_evlist__get_pollfd() by adding
a missing Py_DECREF on the error exit path.

Assisted-by: Antigravity:gemini-3.1-pro
Fixes: 877108e42b1b ("perf tools: Initial python binding")
Signed-off-by: Ian Rogers <irogers@xxxxxxxxxx>
---
tools/perf/util/python.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/tools/perf/util/python.c b/tools/perf/util/python.c
index 11e1f39c1bea..550f1e7d1449 100644
--- a/tools/perf/util/python.c
+++ b/tools/perf/util/python.c
@@ -2825,6 +2825,8 @@ static PyObject *pyrf_evlist__get_pollfd(struct pyrf_evlist *pevlist,

evlist = pevlist->evlist;
list = PyList_New(0);
+ if (!list)
+ return NULL;

for (i = 0; i < evlist__core(evlist)->pollfd.nr; ++i) {
PyObject *file;
@@ -2843,6 +2845,7 @@ static PyObject *pyrf_evlist__get_pollfd(struct pyrf_evlist *pevlist,

return list;
free_list:
+ Py_XDECREF(list);
return PyErr_NoMemory();
}

--
2.55.0.rc0.799.gd6f94ed593-goog