]> granicus.if.org Git - python/commitdiff
Fix a refleak in call_method()
authorVictor Stinner <victor.stinner@gmail.com>
Fri, 19 Aug 2016 15:52:53 +0000 (17:52 +0200)
committerVictor Stinner <victor.stinner@gmail.com>
Fri, 19 Aug 2016 15:52:53 +0000 (17:52 +0200)
Issue #27128. Fix a reference leak if creating the tuple to pass positional
parameters fails.

Objects/typeobject.c

index ee0921ac00ad6fafe61f4f16f1dd12a23b35d445..00995d481d6af027b82bd129ffdf03312d75f9a9 100644 (file)
@@ -1274,8 +1274,10 @@ call_method(PyObject *o, char *name, PyObject **nameobj, char *format, ...)
 
     va_end(va);
 
-    if (args == NULL)
+    if (args == NULL) {
+        Py_DECREF(func);
         return NULL;
+    }
 
     assert(PyTuple_Check(args));
     retval = PyObject_Call(func, args, NULL);