]> granicus.if.org Git - php/commitdiff
Fixed serval segfaults
authorXinchen Hui <laruence@gmail.com>
Mon, 3 Mar 2014 08:46:18 +0000 (16:46 +0800)
committerXinchen Hui <laruence@gmail.com>
Mon, 3 Mar 2014 08:46:18 +0000 (16:46 +0800)
ext/standard/basic_functions.c
ext/standard/url_scanner_ex.c
ext/standard/url_scanner_ex.re

index fc2198edafacc7ed0cf972d5c7ea073b5e1f43ff..61d1225c1ea9a393e8474f1d252532d002edde55 100644 (file)
@@ -6008,7 +6008,7 @@ PHP_FUNCTION(parse_ini_file)
        array_init(return_value);
        if (zend_parse_ini_file(&fh, 0, scanner_mode, ini_parser_cb, return_value TSRMLS_CC) == FAILURE) {
                zend_hash_destroy(Z_ARRVAL_P(return_value));
-               efree(Z_ARRVAL_P(return_value));
+               zval_dtor(return_value);
                RETURN_FALSE;
        }
 }
@@ -6048,7 +6048,7 @@ PHP_FUNCTION(parse_ini_string)
        array_init(return_value);
        if (zend_parse_ini_string(string, 0, scanner_mode, ini_parser_cb, return_value TSRMLS_CC) == FAILURE) {
                zend_hash_destroy(Z_ARRVAL_P(return_value));
-               efree(Z_ARRVAL_P(return_value));
+               zval_dtor(return_value);
                RETVAL_FALSE;
        }
        efree(string);
index e79ab89a625a00c1ddf313ed0a83dcc9dfa79703..cbaedbe69c04e5aac3605de8a54953e591363795 100644 (file)
@@ -1018,7 +1018,7 @@ static void php_url_scanner_output_handler(char *output, uint output_len, char *
 
 PHPAPI int php_url_scanner_add_var(char *name, int name_len, char *value, int value_len, int urlencode TSRMLS_DC)
 {
-       smart_str val;
+       smart_str val = {0};
        zend_string *encoded;
        
        if (BG(url_adapt_state_ex).active) {
index 556e172cab00d45d12ff17d614233e09f59b277e..6e8aa448958ece92b4d304e9d2032ca5a4148dbf 100644 (file)
@@ -470,7 +470,7 @@ static void php_url_scanner_output_handler(char *output, uint output_len, char *
 
 PHPAPI int php_url_scanner_add_var(char *name, int name_len, char *value, int value_len, int urlencode TSRMLS_DC)
 {
-       smart_str val;
+       smart_str val = {0};
        zend_string *encoded;
        
        if (BG(url_adapt_state_ex).active) {