summaryrefslogtreecommitdiff
path: root/main
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2019-07-29 17:34:08 +0200
committerNikita Popov <nikita.ppv@gmail.com>2019-07-29 17:34:16 +0200
commit44fe025c2839b9da51c3b0a0ea90382ac9c14fd4 (patch)
treecf54c18f206d92f7e39752e71b5c30335259d605 /main
parentbbed5564eb8155efb14146e11ef0ad67edb20e28 (diff)
parentdc7aa22b18b710aaa837c9466e9a77241f909c8a (diff)
downloadphp-git-44fe025c2839b9da51c3b0a0ea90382ac9c14fd4.tar.gz
Merge branch 'PHP-7.2' into PHP-7.3
Diffstat (limited to 'main')
-rw-r--r--main/streams/streams.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/main/streams/streams.c b/main/streams/streams.c
index 626c7f6a54..4b9c344dd2 100644
--- a/main/streams/streams.c
+++ b/main/streams/streams.c
@@ -1413,8 +1413,13 @@ PHPAPI zend_string *_php_stream_copy_to_mem(php_stream *src, size_t maxlen, int
ptr += ret;
}
if (len) {
- *ptr = '\0';
ZSTR_LEN(result) = len;
+ ZSTR_VAL(result)[len] = '\0';
+
+ /* Only truncate if the savings are large enough */
+ if (len < maxlen / 2) {
+ result = zend_string_truncate(result, len, persistent);
+ }
} else {
zend_string_free(result);
result = NULL;