From: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> Date: Fri, 2 Jun 2023 17:09:51 +0000 (-0700) Subject: [3.12] gh-104614: Fix potential ref. leak in _testcapimodule/get_basic_static_type... X-Git-Tag: v3.12.0b2~22 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=72d5dfaa8f475498644035839f5a6469db486407;p=thirdparty%2FPython%2Fcpython.git [3.12] gh-104614: Fix potential ref. leak in _testcapimodule/get_basic_static_type() (GH-105225) (#105248) (cherry picked from commit e01b04c9075c6468ed57bc883693ec2a06a6dd8e) Co-authored-by: Erlend E. Aasland --- diff --git a/Modules/_testcapimodule.c b/Modules/_testcapimodule.c index 3caaca35cd74..b8ad00a01974 100644 --- a/Modules/_testcapimodule.c +++ b/Modules/_testcapimodule.c @@ -2658,13 +2658,15 @@ get_basic_static_type(PyObject *self, PyObject *args) PyTypeObject *cls = &BasicStaticTypes[num_basic_static_types_used++]; if (base != NULL) { - cls->tp_base = (PyTypeObject *)Py_NewRef(base); cls->tp_bases = Py_BuildValue("(O)", base); if (cls->tp_bases == NULL) { return NULL; } + cls->tp_base = (PyTypeObject *)Py_NewRef(base); } if (PyType_Ready(cls) < 0) { + Py_DECREF(cls->tp_bases); + Py_DECREF(cls->tp_base); return NULL; } return (PyObject *)cls;