diff options
| author | Victor Stinner <vstinner@redhat.com> | 2018-11-22 15:03:40 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-11-22 15:03:40 +0100 |
| commit | 9a0d7a7648547ffb77144bf2480155f6d7940dea (patch) | |
| tree | 4972ec72abbb88219f7843aab4d050b90b8427c0 | |
| parent | 4d73ae776140a583fdfe8f016d88cc767791e481 (diff) | |
| download | cpython-git-9a0d7a7648547ffb77144bf2480155f6d7940dea.tar.gz | |
bpo-24658: os.read() reuses _PY_READ_MAX (GH-10657)
os_read_impl() now also truncates the size to _PY_READ_MAX
on macOS, to avoid to allocate a larger buffer even if _Py_read() is
limited to _PY_READ_MAX bytes (ex: INT_MAX on macOS).
| -rw-r--r-- | Modules/posixmodule.c | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c index bd97f0abe1..44d6009bda 100644 --- a/Modules/posixmodule.c +++ b/Modules/posixmodule.c @@ -8410,11 +8410,7 @@ os_read_impl(PyObject *module, int fd, Py_ssize_t length) return posix_error(); } -#ifdef MS_WINDOWS - /* On Windows, the count parameter of read() is an int */ - if (length > INT_MAX) - length = INT_MAX; -#endif + length = Py_MIN(length, _PY_READ_MAX); buffer = PyBytes_FromStringAndSize((char *)NULL, length); if (buffer == NULL) |
