]> granicus.if.org Git - python/commitdiff
Merged revisions 67343 via svnmerge from
authorAmaury Forgeot d'Arc <amauryfa@gmail.com>
Sat, 22 Nov 2008 20:06:51 +0000 (20:06 +0000)
committerAmaury Forgeot d'Arc <amauryfa@gmail.com>
Sat, 22 Nov 2008 20:06:51 +0000 (20:06 +0000)
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r67343 | amaury.forgeotdarc | 2008-11-22 21:01:18 +0100 (sam., 22 nov. 2008) | 5 lines

  #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.
........

Misc/NEWS
Python/pythonrun.c

index c7312baf15f31121c1426b9fd9dfb9d08960b235..1c8857691a7c6f0e9fddff8818cd36ae892faa5d 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -12,6 +12,10 @@ What's New in Python 2.6.1 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.
 
index 4ff70d8543022f0292dd7fb4607160a8e5da5bf7..54f3c5784bd86b1384e07ad4214890a971111a2d 100644 (file)
@@ -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!");
                }