summaryrefslogtreecommitdiff
path: root/Zend/zend_operators.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2014-06-27 00:40:52 +0400
committerDmitry Stogov <dmitry@zend.com>2014-06-27 00:40:52 +0400
commit9af4b18b81502a2bea089a21ae7e43197322abe5 (patch)
tree2fcfcaac1fa57cf27fe962f9d56f8e5145e27467 /Zend/zend_operators.c
parent387c491559f1507685740bf613070d27bce59e4d (diff)
downloadphp-git-9af4b18b81502a2bea089a21ae7e43197322abe5.tar.gz
Reverted 387c491559f1507685740bf613070d27bce59e4d (it broke ext/standard/tests/file/bug44607.phpt)
Diffstat (limited to 'Zend/zend_operators.c')
-rw-r--r--Zend/zend_operators.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/Zend/zend_operators.c b/Zend/zend_operators.c
index d64cc6280e..b40d3b14d6 100644
--- a/Zend/zend_operators.c
+++ b/Zend/zend_operators.c
@@ -1581,13 +1581,15 @@ ZEND_API int concat_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) /* {{
Z_STR_P(result) = STR_REALLOC(Z_STR_P(result), res_len, 0 );
Z_TYPE_INFO_P(result) = IS_STRING_EX;
- memcpy(Z_STRVAL_P(result) + op1_len, Z_STRVAL_P(op2), op2_len + 1);
+ memcpy(Z_STRVAL_P(result) + op1_len, Z_STRVAL_P(op2), op2_len);
+ Z_STRVAL_P(result)[res_len]=0;
} else {
int length = Z_STRLEN_P(op1) + Z_STRLEN_P(op2);
zend_string *buf = STR_ALLOC(length, 0);
memcpy(buf->val, Z_STRVAL_P(op1), Z_STRLEN_P(op1));
- memcpy(buf->val + Z_STRLEN_P(op1), Z_STRVAL_P(op2), Z_STRLEN_P(op2) + 1);
+ memcpy(buf->val + Z_STRLEN_P(op1), Z_STRVAL_P(op2), Z_STRLEN_P(op2));
+ buf->val[length] = 0;
ZVAL_NEW_STR(result, buf);
}
if (use_copy1) {