Issue #3697: "Fatal Python error: Cannot recover from stack overflow"
could be easily encountered under Windows in debug mode when exercising
the recursion limit checking code, due to bogus handling of recursion
limit when USE_STACKCHEK was enabled.
Reviewed by Amaury Forgeot d'Arc on IRC.
diff --git a/Python/ceval.c b/Python/ceval.c
index 42df3cb..dc4276b 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -471,6 +471,7 @@
return -1;
}
#endif
+ _Py_CheckRecursionLimit = recursion_limit;
if (tstate->recursion_critical)
/* Somebody asked that we don't check for recursion. */
return 0;
@@ -489,7 +490,6 @@
where);
return -1;
}
- _Py_CheckRecursionLimit = recursion_limit;
return 0;
}