list(xrange(sys.maxint / 4))
test.  Changed 4 to 2.

The belief is that this test intended to trigger a bit of code in
listobject.c's NRESIZE macro that's looking for arithmetic overflow.  As
written, it doesn't achieve that, though, and leaves it up to the platform
realloc() as to whether it wants to allocate 2 gigabytes.  Some platforms
say "sure!", although they don't appear to mean it, and disaster ensues.

Changing 4 to 2 (just barely) manages to trigger the arithmetic overflow
test instead, leaving the platform realloc() out of it.

I'll backport this to the 2.2 branch next.
This commit is contained in:
Tim Peters 2002-10-08 21:01:07 +00:00
parent 8696ebcd28
commit cfac1d4a18
1 changed files with 1 additions and 1 deletions

View File

@ -549,7 +549,7 @@ if sys.maxint == 0x7fffffff:
# thread for the details:
# http://sources.redhat.com/ml/newlib/2002/msg00369.html
list(xrange(sys.maxint / 4))
list(xrange(sys.maxint // 2))
except MemoryError:
pass
else: