STINNER Victor <victor.stin...@haypocalc.com> 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 <rep...@bugs.python.org>
<http://bugs.python.org/issue9611>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to