diff options
| author | Dmitry Stogov <dmitry@zend.com> | 2016-11-18 16:18:22 +0300 |
|---|---|---|
| committer | Dmitry Stogov <dmitry@zend.com> | 2016-11-18 16:18:22 +0300 |
| commit | d769a020dfea2d9a59beff5c27ae4bbd243819f3 (patch) | |
| tree | 3b2bf273a348f92431a45152e6b7725fa67e7cf2 /ext/standard/basic_functions.c | |
| parent | 9ab0db081392638b0a749aa7aef3ef9935dc4c4a (diff) | |
| parent | 97b65cc9c2b2c50d974622458719756eb8e62003 (diff) | |
| download | php-git-d769a020dfea2d9a59beff5c27ae4bbd243819f3.tar.gz | |
Merge branch 'PHP-7.0' into PHP-7.1
* PHP-7.0:
Fixed memory leaks in parse_ini_file()
Diffstat (limited to 'ext/standard/basic_functions.c')
| -rw-r--r-- | ext/standard/basic_functions.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c index 13e8a4e6eb..dfebeeb7d4 100644 --- a/ext/standard/basic_functions.c +++ b/ext/standard/basic_functions.c @@ -5850,8 +5850,6 @@ PHP_FUNCTION(move_uploaded_file) */ static void php_simple_ini_parser_cb(zval *arg1, zval *arg2, zval *arg3, int callback_type, zval *arr) { - zval element; - switch (callback_type) { case ZEND_INI_PARSER_ENTRY: @@ -5859,8 +5857,8 @@ static void php_simple_ini_parser_cb(zval *arg1, zval *arg2, zval *arg3, int cal /* bare string - nothing to do */ break; } - ZVAL_DUP(&element, arg2); - zend_symtable_update(Z_ARRVAL_P(arr), Z_STR_P(arg1), &element); + Z_TRY_ADDREF_P(arg2); + zend_symtable_update(Z_ARRVAL_P(arr), Z_STR_P(arg1), arg2); break; case ZEND_INI_PARSER_POP_ENTRY: @@ -5890,12 +5888,11 @@ static void php_simple_ini_parser_cb(zval *arg1, zval *arg2, zval *arg3, int cal array_init(find_hash); } - ZVAL_DUP(&element, arg2); if (!arg3 || (Z_TYPE_P(arg3) == IS_STRING && Z_STRLEN_P(arg3) == 0)) { - add_next_index_zval(find_hash, &element); + Z_TRY_ADDREF_P(arg2); + add_next_index_zval(find_hash, arg2); } else { - array_set_zval_key(Z_ARRVAL_P(find_hash), arg3, &element); - zval_ptr_dtor(&element); + array_set_zval_key(Z_ARRVAL_P(find_hash), arg3, arg2); } } break; |
