summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAmaury Forgeot d'Arc <amauryfa@gmail.com>2008-11-22 20:01:18 (GMT)
committerAmaury Forgeot d'Arc <amauryfa@gmail.com>2008-11-22 20:01:18 (GMT)
commitdc61901dd2b1bcb5467ebc36ef35a51106d9b103 (patch)
treecdbc71af947b60d1a9d77243a881b6ff96fa445b
parent98adb5ca65624782918556a51c53fe9fbaf158a0 (diff)
downloadcpython-dc61901dd2b1bcb5467ebc36ef35a51106d9b103.zip
cpython-dc61901dd2b1bcb5467ebc36ef35a51106d9b103.tar.gz
cpython-dc61901dd2b1bcb5467ebc36ef35a51106d9b103.tar.bz2
#3996: On Windows, PyOS_CheckStack is supposed to protect the interpreter from
stack overflow. But doing this, it always crashes when the stack is nearly full. Reviewed by Martin von Loewis. Will backport to 2.6.
-rw-r--r--Misc/NEWS4
-rw-r--r--Python/pythonrun.c2
2 files changed, 5 insertions, 1 deletions
diff --git a/Misc/NEWS b/Misc/NEWS
index c3f0ec6..b7e80a9 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -12,6 +12,10 @@ What's New in Python 2.7 alpha 1
Core and Builtins
-----------------
+- Issue #3996: On Windows, the PyOS_CheckStack function would cause the
+ interpreter to abort ("Fatal Python error: Could not reset the stack!")
+ instead of throwing a MemoryError.
+
- Issue #4367: Python would segfault during compiling when the unicodedata
module couldn't be imported and \N escapes were present.
diff --git a/Python/pythonrun.c b/Python/pythonrun.c
index 4ff70d8..54f3c57 100644
--- a/Python/pythonrun.c
+++ b/Python/pythonrun.c
@@ -1755,7 +1755,7 @@ PyOS_CheckStack(void)
EXCEPTION_EXECUTE_HANDLER :
EXCEPTION_CONTINUE_SEARCH) {
int errcode = _resetstkoflw();
- if (errcode)
+ if (errcode == 0)
{
Py_FatalError("Could not reset the stack!");
}