summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Python/bltinmodule.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c
index 9a09c8c..576447c 100644
--- a/Python/bltinmodule.c
+++ b/Python/bltinmodule.c
@@ -2291,18 +2291,22 @@ filterstring(PyObject *func, PyObject *strobj)
if (item == NULL)
goto Fail_1;
arg = Py_BuildValue("(O)", item);
- Py_DECREF(item);
- if (arg == NULL)
+ if (arg == NULL) {
+ Py_DECREF(item);
goto Fail_1;
+ }
good = PyEval_CallObject(func, arg);
Py_DECREF(arg);
- if (good == NULL)
+ if (good == NULL) {
+ Py_DECREF(item);
goto Fail_1;
+ }
ok = PyObject_IsTrue(good);
Py_DECREF(good);
if (ok)
PyString_AS_STRING((PyStringObject *)result)[j++] =
PyString_AS_STRING((PyStringObject *)item)[0];
+ Py_DECREF(item);
}
if (j < len && _PyString_Resize(&result, j) < 0)