mirror of https://github.com/python/cpython
The
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:
parent
8696ebcd28
commit
cfac1d4a18
|
@ -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:
|
||||
|
|
Loading…
Reference in New Issue