Commit: 139e9824adfa52c68ac45a0d8886f50ae50c0164 Author: David Soria Parra <d...@php.net> Wed, 15 May 2013 14:27:59 +0200 Parents: 082ee90b9bc9b6487b36831f34acfc901c671c41 Branches: PHP-5.5 master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=139e9824adfa52c68ac45a0d8886f50ae50c0164 Log: Fix array_colum segfault Separate zval to avoid gc from freeing Changed paths: M ext/standard/array.c Diff: diff --git a/ext/standard/array.c b/ext/standard/array.c index cfe9be8..9bfb088 100644 --- a/ext/standard/array.c +++ b/ext/standard/array.c @@ -2608,11 +2608,9 @@ PHP_FUNCTION(array_column) } else if (zkeyval && Z_TYPE_PP(zkeyval) == IS_LONG) { add_index_zval(return_value, Z_LVAL_PP(zkeyval), *zcolval); } else if (zkeyval && Z_TYPE_PP(zkeyval) == IS_OBJECT) { - zval copyval; - ZVAL_ZVAL(©val, *zkeyval, 1, 0); - convert_to_string(©val); - add_assoc_zval(return_value, Z_STRVAL(copyval), *zcolval); - zval_dtor(©val); + SEPARATE_ZVAL(zkeyval); + convert_to_string(*zkeyval); + add_assoc_zval(return_value, Z_STRVAL_PP(zkeyval), *zcolval); } else { add_next_index_zval(return_value, *zcolval); } -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php