]> granicus.if.org Git - python/commitdiff
ceval.c: catch recursion error on _PyUnicode_AsString(co->co_filename)
authorVictor Stinner <victor.stinner@haypocalc.com>
Wed, 13 Oct 2010 10:48:55 +0000 (10:48 +0000)
committerVictor Stinner <victor.stinner@haypocalc.com>
Wed, 13 Oct 2010 10:48:55 +0000 (10:48 +0000)
Python/ceval.c

index 48b567865296ff15ea6d769f130669262b194ad9..f85f33ad02ede3fe288fbbee676b962dcbf231a9 100644 (file)
@@ -1232,6 +1232,10 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)
         PyObject *error_type, *error_value, *error_traceback;
         PyErr_Fetch(&error_type, &error_value, &error_traceback);
         filename = _PyUnicode_AsString(co->co_filename);
+        if (filename == NULL && tstate->overflowed) {
+            /* maximum recursion depth exceeded */
+            goto exit_eval_frame;
+        }
         PyErr_Restore(error_type, error_value, error_traceback);
     }
 #endif