summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristoph M. Becker <cmbecker69@gmx.de>2020-09-03 14:27:45 +0200
committerChristoph M. Becker <cmbecker69@gmx.de>2020-09-03 15:43:19 +0200
commit1848ccdae2b9fbdfbbe8de56f8eda8b8869c825e (patch)
tree02ab6492a1392568dad64355e6c248358a381d6e
parentc70a938f2871373875e8782205c824b11697bd51 (diff)
downloadphp-git-1848ccdae2b9fbdfbbe8de56f8eda8b8869c825e.tar.gz
Fix #80048: Bug #69100 has not been fixed for Windows
We fix the erroneous length calculation on Windows, too. Closes GH-6067.
-rw-r--r--NEWS3
-rw-r--r--main/streams/plain_wrapper.c12
2 files changed, 7 insertions, 8 deletions
diff --git a/NEWS b/NEWS
index 8a2432c2df..0800e83e0f 100644
--- a/NEWS
+++ b/NEWS
@@ -2,6 +2,9 @@ PHP NEWS
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
?? ??? ????, PHP 7.3.23
+- Core:
+ . Fixed bug #80048 (Bug #69100 has not been fixed for Windows). (cmb)
+
- Calendar:
. Fixed bug #80007 (Potential type confusion in unixtojd() parameter parsing).
(Andy Postnikov)
diff --git a/main/streams/plain_wrapper.c b/main/streams/plain_wrapper.c
index c975997981..2b81912857 100644
--- a/main/streams/plain_wrapper.c
+++ b/main/streams/plain_wrapper.c
@@ -786,15 +786,11 @@ static int php_stdiop_set_option(php_stream *stream, int option, int value, void
}
size = GetFileSize(hfile, NULL);
- if (range->length == 0 && range->offset > 0 && range->offset < size) {
- range->length = size - range->offset;
- }
- if (range->length == 0 || range->length > size) {
- range->length = size;
- }
- if (range->offset >= size) {
+ if (range->offset > size) {
range->offset = size;
- range->length = 0;
+ }
+ if (range->length == 0 || range->length > size - range->offset) {
+ range->length = size - range->offset;
}
/* figure out how big a chunk to map to be able to view the part that we need */