]> granicus.if.org Git - php/commitdiff
Fixed segfault in ext/standard/tests/strings/bug24208.php
authorXinchen Hui <laruence@gmail.com>
Sat, 22 Feb 2014 12:19:12 +0000 (20:19 +0800)
committerXinchen Hui <laruence@gmail.com>
Sat, 22 Feb 2014 12:19:12 +0000 (20:19 +0800)
it still ugly,, maybe we should make EG(active_symbol_table) a zend_array?

ext/standard/string.c

index 8aa0d5970cd7d2328182ee0d29d3b2e00a69fddc..759839433d9666a81101e2fae9ad2622b8f8b88d 100644 (file)
@@ -4443,7 +4443,11 @@ PHP_FUNCTION(parse_str)
                        zend_rebuild_symbol_table(TSRMLS_C);
                }
 //???          Z_ARRVAL(tmp) = EG(active_symbol_table);
+               array_init(&tmp);
+               zend_hash_copy(Z_ARRVAL(tmp), EG(active_symbol_table), zval_add_ref);
                sapi_module.treat_data(PARSE_STRING, res, &tmp TSRMLS_CC);
+               zend_hash_copy(EG(active_symbol_table), Z_ARRVAL(tmp), zval_add_ref);
+               zval_dtor(&tmp);
        } else  {
                zval ret;