From: Serhiy Storchaka Date: Sun, 5 Jun 2016 08:06:42 +0000 (+0300) Subject: Issue #27225: Fixed a reference leak in type_new when setting __new__ fails. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1a9ee946b0bd9eb93e48833e0f4de6b338867673;p=python Issue #27225: Fixed a reference leak in type_new when setting __new__ fails. Original patch by Xiang Zhang. --- diff --git a/Objects/typeobject.c b/Objects/typeobject.c index d78f298375..cae511897d 100644 --- a/Objects/typeobject.c +++ b/Objects/typeobject.c @@ -2430,7 +2430,11 @@ type_new(PyTypeObject *metatype, PyObject *args, PyObject *kwds) Py_DECREF(type); return NULL; } - PyDict_SetItemString(dict, "__new__", tmp); + if (PyDict_SetItemString(dict, "__new__", tmp) < 0) { + Py_DECREF(tmp); + Py_DECREF(type); + return NULL; + } Py_DECREF(tmp); }