From 1a9ee946b0bd9eb93e48833e0f4de6b338867673 Mon Sep 17 00:00:00 2001 From: Serhiy Storchaka Date: Sun, 5 Jun 2016 11:06:42 +0300 Subject: Issue #27225: Fixed a reference leak in type_new when setting __new__ fails. Original patch by Xiang Zhang. --- Objects/typeobject.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Objects/typeobject.c b/Objects/typeobject.c index d78f298..cae5118 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); } -- cgit v0.12