]> granicus.if.org Git - python/commitdiff
Issue #18408: Fix call_function() of ceval.c to handle PyTuple_New() failure
authorVictor Stinner <victor.stinner@gmail.com>
Mon, 8 Jul 2013 20:27:42 +0000 (22:27 +0200)
committerVictor Stinner <victor.stinner@gmail.com>
Mon, 8 Jul 2013 20:27:42 +0000 (22:27 +0200)
(in load_args()), ex: MemoryError.

Python/ceval.c

index e184ef6a4b899966eeb94478534b2aa089069765..82e85ca95d4c55f40e90001b77f2c34539b407ea 100644 (file)
@@ -4171,10 +4171,15 @@ call_function(PyObject ***pp_stack, int oparg
         else {
             PyObject *callargs;
             callargs = load_args(pp_stack, na);
-            READ_TIMESTAMP(*pintr0);
-            C_TRACE(x, PyCFunction_Call(func,callargs,NULL));
-            READ_TIMESTAMP(*pintr1);
-            Py_XDECREF(callargs);
+            if (callargs != NULL) {
+                READ_TIMESTAMP(*pintr0);
+                C_TRACE(x, PyCFunction_Call(func,callargs,NULL));
+                READ_TIMESTAMP(*pintr1);
+                Py_XDECREF(callargs);
+            }
+            else {
+                x = NULL;
+            }
         }
     } else {
         if (PyMethod_Check(func) && PyMethod_GET_SELF(func) != NULL) {