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(&copyval, *zkeyval, 1, 0);
-                       convert_to_string(&copyval);
-                       add_assoc_zval(return_value, Z_STRVAL(copyval), 
*zcolval);
-                       zval_dtor(&copyval);
+                       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

Reply via email to