]> granicus.if.org Git - python/commitdiff
fix possible refleak (closes #14752)
authorBenjamin Peterson <benjamin@python.org>
Tue, 8 May 2012 13:22:24 +0000 (09:22 -0400)
committerBenjamin Peterson <benjamin@python.org>
Tue, 8 May 2012 13:22:24 +0000 (09:22 -0400)
Objects/typeobject.c

index 08e5775fa237f658a361a271c369a6c8fbd7c363..3bb0459998d0aaae71b2a69f31858d8b5bbb4397 100644 (file)
@@ -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;
 }