cpython: 7acdf9f5eb31 (original) (raw)
Mercurial > cpython
changeset 71224:7acdf9f5eb31 3.2
Issue #9611, #9015: FileIO.read() clamps the length to INT_MAX on Windows. [#9611]
Victor Stinner victor.stinner@haypocalc.com | |
---|---|
date | Tue, 05 Jul 2011 11:31:49 +0200 |
parents | 7eb85a23cf3d |
children | e8646f120330 dcfacc2d93b4 |
files | Misc/NEWS Modules/_io/fileio.c |
diffstat | 2 files changed, 11 insertions(+), 1 deletions(-)[+] [-] Misc/NEWS 4 Modules/_io/fileio.c 8 |
line wrap: on
line diff
--- a/Misc/NEWS +++ b/Misc/NEWS @@ -10,6 +10,8 @@ What's New in Python 3.2.2? Core and Builtins ----------------- +- Issue #9611, #9015: FileIO.read() clamps the length to INT_MAX on Windows. +
- When a generator yields, do not retain the caller's exception state on the generator. @@ -908,7 +910,7 @@ Core and Builtins (length bigger than 2^31-1 bytes).
- Issue #9015, #9611: FileIO.readinto(), FileIO.write(), os.write() and
- stdprinter.write() clamp the length to 2^31-1 on Windows.
- Issue #8278: On Windows and with a NTFS filesystem, os.stat() and os.utime() can now handle dates after 2038.
--- a/Modules/_io/fileio.c +++ b/Modules/_io/fileio.c @@ -664,6 +664,10 @@ fileio_read(fileio *self, PyObject *args return fileio_readall(self); } +#if defined(MS_WIN64) || defined(MS_WINDOWS)
+#endif bytes = PyBytes_FromStringAndSize(NULL, size); if (bytes == NULL) return NULL; @@ -672,7 +676,11 @@ fileio_read(fileio *self, PyObject *args if (_PyVerify_fd(self->fd)) { Py_BEGIN_ALLOW_THREADS errno = 0; +#if defined(MS_WIN64) || defined(MS_WINDOWS)
n = read(self->fd, ptr, (int)size);[](#l2.19)
+#else n = read(self->fd, ptr, size); +#endif Py_END_ALLOW_THREADS } else n = -1;