summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorErlend E. Aasland <erlend@python.org>2024-03-04 09:46:18 (GMT)
committerGitHub <noreply@github.com>2024-03-04 09:46:18 (GMT)
commit17c4849981905fb1c9bfbb2b963b6ee12e3efb2c (patch)
tree06cae8c26c168c4801714b9da77a70b722b2395b
parent1dce0073da2e48f3cd387f4d57b14d6813bb8a85 (diff)
downloadcpython-17c4849981905fb1c9bfbb2b963b6ee12e3efb2c.zip
cpython-17c4849981905fb1c9bfbb2b963b6ee12e3efb2c.tar.gz
cpython-17c4849981905fb1c9bfbb2b963b6ee12e3efb2c.tar.bz2
gh-116296: Fix refleak in reduce_newobj() corner case (#116297)
Co-authored-by: Brandt Bucher <brandtbucher@microsoft.com>
-rw-r--r--Misc/NEWS.d/next/Core and Builtins/2024-03-04-10-19-51.gh-issue-116296.gvtxyU.rst1
-rw-r--r--Objects/typeobject.c1
2 files changed, 2 insertions, 0 deletions
diff --git a/Misc/NEWS.d/next/Core and Builtins/2024-03-04-10-19-51.gh-issue-116296.gvtxyU.rst b/Misc/NEWS.d/next/Core and Builtins/2024-03-04-10-19-51.gh-issue-116296.gvtxyU.rst
new file mode 100644
index 0000000..0781e92
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2024-03-04-10-19-51.gh-issue-116296.gvtxyU.rst
@@ -0,0 +1 @@
+Fix possible refleak in :meth:`!object.__reduce__` internal error handling.
diff --git a/Objects/typeobject.c b/Objects/typeobject.c
index fe3b7b8..181d032 100644
--- a/Objects/typeobject.c
+++ b/Objects/typeobject.c
@@ -6549,6 +6549,7 @@ reduce_newobj(PyObject *obj)
}
else {
/* args == NULL */
+ Py_DECREF(copyreg);
Py_DECREF(kwargs);
PyErr_BadInternalCall();
return NULL;