STINNER Victor added the comment:

On Windows, the type of the size parameter of read() is an unsigned int, not 
long nor size_t:
http://msdn.microsoft.com/en-us/library/1570wh78.aspx

FileIO.read() of Python 3 uses a size_t type but also:

#ifdef MS_WINDOWS
    if (size > INT_MAX)
        size = INT_MAX;
#endif
...
#ifdef MS_WINDOWS
        n = read(self->fd, ptr, (int)size);
#else
        n = read(self->fd, ptr, size);
#endif


Using a size_t to parse the Python parameter would avoid an OverflowError and 
the function would be more portable. But it would not permit to read more than 
2 GB at once.

----------
nosy: +haypo

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue21199>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to