diff options
author | Christoph M. Becker <cmbecker69@gmx.de> | 2021-01-28 17:00:16 +0100 |
---|---|---|
committer | Christoph M. Becker <cmbecker69@gmx.de> | 2021-02-01 12:57:40 +0100 |
commit | 7e9479083d6dc6d84c393a96eb718bccc0185b9b (patch) | |
tree | 347d95e6e17c13182e82277e56be7957376bdc60 | |
parent | 217b9e7b41ffa009ea8047ba4868913bf55b1b32 (diff) | |
download | php-git-7e9479083d6dc6d84c393a96eb718bccc0185b9b.tar.gz |
Fix #80654: file_get_contents() maxlen fails above (2**31)-1 bytes
We remove the arbitrary restriction to `INT_MAX`; it is superfluous on
32bit systems where `ZEND_LONG_MAX == INT_MAX` anyway, and not useful
on 64bit systems, where larger files should be readable, if the
`memory_limit` is large enough.
Closes GH-6648.
-rw-r--r-- | NEWS | 4 | ||||
-rw-r--r-- | ext/standard/file.c | 4 | ||||
-rw-r--r-- | ext/standard/streamsfuncs.c | 4 |
3 files changed, 4 insertions, 8 deletions
@@ -10,6 +10,10 @@ PHP NEWS semicolon) (cmb) . Fixed bug #70091 (Phar does not mark UTF-8 filenames in ZIP archives). (cmb) +- Standard: + . Fixed bug #80654 (file_get_contents() maxlen fails above (2**31)-1 bytes). + (cmb) + - Zip: . Fixed bug #80648 (Fix for bug 79296 should be based on runtime version). (cmb, Remi) diff --git a/ext/standard/file.c b/ext/standard/file.c index 12c21c93cd..3bd3421603 100644 --- a/ext/standard/file.c +++ b/ext/standard/file.c @@ -564,10 +564,6 @@ PHP_FUNCTION(file_get_contents) RETURN_FALSE; } - if (maxlen > INT_MAX) { - php_error_docref(NULL, E_WARNING, "maxlen truncated from " ZEND_LONG_FMT " to %d bytes", maxlen, INT_MAX); - maxlen = INT_MAX; - } if ((contents = php_stream_copy_to_mem(stream, maxlen, 0)) != NULL) { RETVAL_STR(contents); } else { diff --git a/ext/standard/streamsfuncs.c b/ext/standard/streamsfuncs.c index 68ad6483e8..907feba741 100644 --- a/ext/standard/streamsfuncs.c +++ b/ext/standard/streamsfuncs.c @@ -456,10 +456,6 @@ PHP_FUNCTION(stream_get_contents) } } - if (maxlen > INT_MAX) { - php_error_docref(NULL, E_WARNING, "maxlen truncated from " ZEND_LONG_FMT " to %d bytes", maxlen, INT_MAX); - maxlen = INT_MAX; - } if ((contents = php_stream_copy_to_mem(stream, maxlen, 0))) { RETURN_STR(contents); } else { |