STINNER Victor <[email protected]> added the comment:
I agree that clamping is a nice solution, and attached patch implements it.
About the question of the loop: FileIO.readall() uses while(1) without checking
for signals. It looks like new_buffersize() maximum size is not BIGCHUNK but
(BIGCHUNK-1)*2:
/* Keep doubling until we reach BIGCHUNK;
then keep adding BIGCHUNK. */
if (currentsize <= BIGCHUNK)
return currentsize + currentsize;
else
return currentsize + BIGCHUNK;
Is it a bug? But (BIGCHUNK-1)*2 is always smaller than INT_MAX. So readall()
isn't affected by this bug. Should it be patched?
posix.read() doesn't have the bug because it uses an "int" for the size.
----------
keywords: +patch
Added file: http://bugs.python.org/file19898/read_write_32bits.patch
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue9611>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com