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 <[email protected]>
<http://bugs.python.org/issue21199>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com