summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXinchen Hui <laruence@gmail.com>2016-06-28 11:11:25 +0800
committerXinchen Hui <laruence@gmail.com>2016-06-28 11:11:25 +0800
commitc73a2f7f45fc4ad6bf45f5f6929606725f285cd7 (patch)
treea288e9db628b55006a2cf4f1961cf73957076559
parentad32c7b538de017d8273ecd00bb3710d7a9c586a (diff)
downloadphp-git-c73a2f7f45fc4ad6bf45f5f6929606725f285cd7.tar.gz
Fixed bug #72505 (readfile() mangles files larger than 2G)
-rw-r--r--NEWS1
-rw-r--r--main/streams/streams.c2
2 files changed, 2 insertions, 1 deletions
diff --git a/NEWS b/NEWS
index 68eea45892..816a20f451 100644
--- a/NEWS
+++ b/NEWS
@@ -21,6 +21,7 @@ PHP NEWS
. Fixed bug #72463 (mail fails with invalid argument). (Anatol)
- Standard:
+ . Fixed bug #72505 (readfile() mangles files larger than 2G). (Cschneid)
. Fixed bug #72306 (Heap overflow through proc_open and $env parameter).
(Laruence)
diff --git a/main/streams/streams.c b/main/streams/streams.c
index d64d5caa6a..e21d21a807 100644
--- a/main/streams/streams.c
+++ b/main/streams/streams.c
@@ -1396,7 +1396,7 @@ PHPAPI size_t _php_stream_passthru(php_stream * stream STREAMS_DC)
if (p) {
do {
/* output functions return int, so pass in int max */
- if (0 < (b = PHPWRITE(p, MIN(mapped - bcount, INT_MAX)))) {
+ if (0 < (b = PHPWRITE(p + bcount, MIN(mapped - bcount, INT_MAX)))) {
bcount += b;
}
} while (b > 0 && mapped > bcount);