From: Benjamin Peterson Date: Tue, 8 May 2012 13:22:24 +0000 (-0400) Subject: fix possible refleak (closes #14752) X-Git-Tag: v2.7.4rc1~843 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f1ae5cf5c7f17e1103735060457fccd5844d21c9;p=thirdparty%2FPython%2Fcpython.git fix possible refleak (closes #14752) --- diff --git a/Objects/typeobject.c b/Objects/typeobject.c index 08e5775fa237..3bb0459998d0 100644 --- a/Objects/typeobject.c +++ b/Objects/typeobject.c @@ -3565,6 +3565,7 @@ add_methods(PyTypeObject *type, PyMethodDef *meth) for (; meth->ml_name != NULL; meth++) { PyObject *descr; + int err; if (PyDict_GetItemString(dict, meth->ml_name) && !(meth->ml_flags & METH_COEXIST)) continue; @@ -3588,9 +3589,10 @@ add_methods(PyTypeObject *type, PyMethodDef *meth) } if (descr == NULL) return -1; - if (PyDict_SetItemString(dict, meth->ml_name, descr) < 0) - return -1; + err = PyDict_SetItemString(dict, meth->ml_name, descr); Py_DECREF(descr); + if (err < 0) + return -1; } return 0; }