summaryrefslogtreecommitdiff
path: root/Python/ceval.c
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@haypocalc.com>2010-10-13 10:48:55 +0000
committerVictor Stinner <victor.stinner@haypocalc.com>2010-10-13 10:48:55 +0000
commitd098002473ae36aab58993cb3d41dd71cba39561 (patch)
tree658f636ceac41825f3e94ba41a591cf2bca8aa3e /Python/ceval.c
parente628dc9d9f91162caf03fe8db09e9e5d1fd32d45 (diff)
downloadcpython-d098002473ae36aab58993cb3d41dd71cba39561.tar.gz
ceval.c: catch recursion error on _PyUnicode_AsString(co->co_filename)
Diffstat (limited to 'Python/ceval.c')
-rw-r--r--Python/ceval.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/Python/ceval.c b/Python/ceval.c
index 48b5678652..f85f33ad02 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -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