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-Tag: v2.7.12rc1~14^2~7 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1a9ee946b0bd9eb93e48833e0f4de6b338867673;p=thirdparty%2FPython%2Fcpython.git 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 d78f29837593..cae511897dbb 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); }