[PATCH v3 14/15] perf python: Fix memory leak in pyrf__metrics_cb

From: Ian Rogers

Date: Sun Aug 09 2026 - 03:20:52 EST


In pyrf__metrics_cb, PyDict_SetItem does not steal the reference of the
key and value, so they need to be decref'ed after successful insertion
to avoid memory leaks.

Fixes: 47b3e95728eb ("perf python: Add metrics function")
Signed-off-by: Ian Rogers <irogers@xxxxxxxxxx>
---
tools/perf/util/python.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/tools/perf/util/python.c b/tools/perf/util/python.c
index 71431c9c2e76..077e0f5d9fcd 100644
--- a/tools/perf/util/python.c
+++ b/tools/perf/util/python.c
@@ -3574,6 +3574,8 @@ static int pyrf__metrics_cb(const struct pmu_metric *pm,
Py_XDECREF(dict);
return -ENOMEM;
}
+ Py_DECREF(key);
+ Py_DECREF(value);

if (!add_to_dict(dict, "MetricName", pm->metric_name) ||
!add_to_dict(dict, "PMU", pm->pmu) ||
--
2.55.0.679.g6767b8d81c-goog