From b864abfe23fde5d79a303519674ba83062f89361 Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Wed, 17 Jul 2019 15:58:29 +0200 Subject: Fixed bug #69100 --- main/streams/plain_wrapper.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) (limited to 'main') diff --git a/main/streams/plain_wrapper.c b/main/streams/plain_wrapper.c index d409fe99f0..837485742a 100644 --- a/main/streams/plain_wrapper.c +++ b/main/streams/plain_wrapper.c @@ -696,18 +696,15 @@ static int php_stdiop_set_option(php_stream *stream, int option, int value, void return fd == -1 ? PHP_STREAM_OPTION_RETURN_ERR : PHP_STREAM_OPTION_RETURN_OK; case PHP_STREAM_MMAP_MAP_RANGE: - if(do_fstat(data, 1) != 0) { + if (do_fstat(data, 1) != 0) { return PHP_STREAM_OPTION_RETURN_ERR; } - if (range->length == 0 && range->offset > 0 && range->offset < data->sb.st_size) { - range->length = data->sb.st_size - range->offset; - } - if (range->length == 0 || range->length > data->sb.st_size) { - range->length = data->sb.st_size; - } - if (range->offset >= data->sb.st_size) { + if (range->offset > data->sb.st_size) { range->offset = data->sb.st_size; - range->length = 0; + } + if (range->length == 0 || + range->length > data->sb.st_size - range->offset) { + range->length = data->sb.st_size - range->offset; } switch (range->mode) { case PHP_STREAM_MAP_MODE_READONLY: -- cgit v1.2.1