summaryrefslogtreecommitdiffstats
path: root/Python/_warnings.c
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@python.org>2020-11-18 14:57:10 (GMT)
committerGitHub <noreply@github.com>2020-11-18 14:57:10 (GMT)
commitd1e38d4023aa29e7ed64d4f8eb9c1e4a3c86a2e5 (patch)
treecbeb8dae434536963656a24fdebfddc0348617bb /Python/_warnings.c
parent8fba9523cf08029dc2e280d9f48fdd57ab178c9d (diff)
downloadcpython-d1e38d4023aa29e7ed64d4f8eb9c1e4a3c86a2e5.zip
cpython-d1e38d4023aa29e7ed64d4f8eb9c1e4a3c86a2e5.tar.gz
cpython-d1e38d4023aa29e7ed64d4f8eb9c1e4a3c86a2e5.tar.bz2
bpo-40998: Fix a refleak in create_filter() (GH-23365)
Diffstat (limited to 'Python/_warnings.c')
-rw-r--r--Python/_warnings.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/Python/_warnings.c b/Python/_warnings.c
index 8d33fbe..313420c 100644
--- a/Python/_warnings.c
+++ b/Python/_warnings.c
@@ -69,12 +69,14 @@ create_filter(PyObject *category, _Py_Identifier *id, const char *modname)
return NULL;
}
} else {
- modname_obj = Py_None;
+ modname_obj = Py_NewRef(Py_None);
}
/* This assumes the line number is zero for now. */
- return PyTuple_Pack(5, action_str, Py_None,
- category, modname_obj, _PyLong_GetZero());
+ PyObject *filter = PyTuple_Pack(5, action_str, Py_None,
+ category, modname_obj, _PyLong_GetZero());
+ Py_DECREF(modname_obj);
+ return filter;
}
#endif