From: Serhiy Storchaka Date: Sun, 5 Jun 2016 07:48:36 +0000 (+0300) Subject: Issue #27225: Fixed a reference leak in type_new when setting __new__ fails. X-Git-Tag: v3.5.2rc1~45 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=484c913ed9fc438cedd2757d6124ab1bac4239be;p=thirdparty%2FPython%2Fcpython.git Issue #27225: Fixed a reference leak in type_new when setting __new__ fails. Patch by Xiang Zhang. --- diff --git a/Objects/typeobject.c b/Objects/typeobject.c index 19e65963d58f..317334f739a5 100644 --- a/Objects/typeobject.c +++ b/Objects/typeobject.c @@ -2575,8 +2575,10 @@ type_new(PyTypeObject *metatype, PyObject *args, PyObject *kwds) tmp = PyStaticMethod_New(tmp); if (tmp == NULL) goto error; - if (_PyDict_SetItemId(dict, &PyId___new__, tmp) < 0) + if (_PyDict_SetItemId(dict, &PyId___new__, tmp) < 0) { + Py_DECREF(tmp); goto error; + } Py_DECREF(tmp); }