summaryrefslogtreecommitdiff
path: root/main/streams/streams.c
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2019-07-29 17:34:21 +0200
committerNikita Popov <nikita.ppv@gmail.com>2019-07-29 17:34:37 +0200
commit536c91c535d5113aabd2a65b2021a70dc1841d89 (patch)
tree56976027f885fef4ea4c59b03339eae2d8cdb404 /main/streams/streams.c
parent6df1665bb3d5b5d8f799ec40b27463df2b630c51 (diff)
parent44fe025c2839b9da51c3b0a0ea90382ac9c14fd4 (diff)
downloadphp-git-536c91c535d5113aabd2a65b2021a70dc1841d89.tar.gz
Merge branch 'PHP-7.3' into PHP-7.4
Diffstat (limited to 'main/streams/streams.c')
-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 45bdc828b9..7d81644724 100644
--- a/main/streams/streams.c
+++ b/main/streams/streams.c
@@ -1472,8 +1472,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;