summaryrefslogtreecommitdiffstats
path: root/Python/ceval.c
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@haypocalc.com>2010-10-13 10:48:55 (GMT)
committerVictor Stinner <victor.stinner@haypocalc.com>2010-10-13 10:48:55 (GMT)
commita00064576ac9365f1c619a632348b08a894b4395 (patch)
tree27c649e11353f63b7c4e0989dc99f99fb9f07eaa /Python/ceval.c
parent8060399654980d2c5dc91883ce4505c9fc376277 (diff)
downloadcpython-a00064576ac9365f1c619a632348b08a894b4395.zip
cpython-a00064576ac9365f1c619a632348b08a894b4395.tar.gz
cpython-a00064576ac9365f1c619a632348b08a894b4395.tar.bz2
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 48b5678..f85f33a 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