From a11374f7e3cf5b5b0bdb254f88eeb283f8eabf2e Mon Sep 17 00:00:00 2001 From: Florian Larysch Date: Thu, 12 Mar 2026 21:29:33 +0100 Subject: [PATCH] don't decref borrowed references PyArg_ParseTuple does not increment the reference count of objects returned from the "O" format specifier, so we must not DECREF them. Signed-off-by: Florian Larysch --- pyalsa/alsahcontrol.c | 4 +--- pyalsa/alsamixer.c | 2 -- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/pyalsa/alsahcontrol.c b/pyalsa/alsahcontrol.c index 70e3476..b025d3e 100644 --- a/pyalsa/alsahcontrol.c +++ b/pyalsa/alsahcontrol.c @@ -1172,10 +1172,8 @@ pyalsahcontrolvalue_settuple(struct pyalsahcontrolvalue *self, PyObject *args) return NULL; } iec958 = calloc(1, sizeof(*iec958)); - if (iec958 == NULL) { - Py_DECREF(t); + if (iec958 == NULL) Py_RETURN_NONE; - } v = !list ? PyTuple_GET_ITEM(t, 0) : PyList_GetItem(t, 0); Py_INCREF(v); if (!PyBytes_Check(v)) diff --git a/pyalsa/alsamixer.c b/pyalsa/alsamixer.c index 47c634b..1a5e42a 100644 --- a/pyalsa/alsamixer.c +++ b/pyalsa/alsamixer.c @@ -724,7 +724,6 @@ pyalsamixerelement_setvolumetuple(struct pyalsamixerelement *pyelem, PyObject *a PyErr_Format(PyExc_RuntimeError, "Cannot set mixer volume (capture=%s, channel=%i, value=%li): %s", dir ? "True" : "False", i, val, snd_strerror(-res)); } } - Py_DECREF(t); Py_RETURN_NONE; } @@ -937,7 +936,6 @@ pyalsamixerelement_setswitchtuple(struct pyalsamixerelement *pyelem, PyObject *a if (res < 0) PyErr_Format(PyExc_RuntimeError, "Cannot set mixer switch (capture=%s, channel=%i, value=%i): %s", dir ? "True" : "False", i, val, snd_strerror(-res)); } - Py_DECREF(t); Py_RETURN_NONE; }