ceval.c: catch recursion error on _PyUnicode_AsString(co->co_filename)
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 @@
         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