diff options
author | Xinchen Hui <laruence@gmail.com> | 2015-11-20 06:54:57 -0800 |
---|---|---|
committer | Anatol Belski <ab@php.net> | 2015-11-21 17:48:41 +0100 |
commit | e4d1ac2c0f9dd0ac0789fe6afff0e3f97dae3bc6 (patch) | |
tree | 3b057b88edb033a3096e505390ee261bc0c714f8 | |
parent | 855cf743abc1c3721db2e54c74faa6d8518bbc1b (diff) | |
download | php-git-e4d1ac2c0f9dd0ac0789fe6afff0e3f97dae3bc6.tar.gz |
Improved previously fix a little
-rw-r--r-- | Zend/zend_ini_parser.y | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/Zend/zend_ini_parser.y b/Zend/zend_ini_parser.y index d6f33159d8..015a2d61b0 100644 --- a/Zend/zend_ini_parser.y +++ b/Zend/zend_ini_parser.y @@ -106,21 +106,19 @@ static void zend_ini_add_string(zval *result, zval *op1, zval *op2) if (Z_TYPE_P(op1) != IS_STRING) { zend_string *str = zval_get_string(op1); - ZVAL_PSTRINGL(op1, str->val, str->len); + /* ZEND_ASSERT(!Z_REFCOUNTED_P(op1)); */ + ZVAL_PSTRINGL(op1, ZSTR_VAL(str), ZSTR_LEN(str)); zend_string_release(str); } op1_len = (int)Z_STRLEN_P(op1); if (Z_TYPE_P(op2) != IS_STRING) { - zend_string *str = zval_get_string(op2); - ZVAL_PSTRINGL(op2, str->val, str->len); - zend_string_release(str); + convert_to_string(op2); } length = op1_len + (int)Z_STRLEN_P(op2); ZVAL_NEW_STR(result, zend_string_extend(Z_STR_P(op1), length, 1)); - memcpy(Z_STRVAL_P(result)+op1_len, Z_STRVAL_P(op2), Z_STRLEN_P(op2)); - Z_STRVAL_P(result)[length] = 0; + memcpy(Z_STRVAL_P(result) + op1_len, Z_STRVAL_P(op2), Z_STRLEN_P(op2) + 1); } /* }}} */ |