#30074 [Com]: apparent symbol table error with extract($blah, EXTR_REFS)

From: Date: Sun, 10 Dec 2006 00:54:25 +0000
Subject: #30074 [Com]: apparent symbol table error with extract($blah, EXTR_REFS)
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-106146@lists.php.net to get a copy of this message
ID: 30074 Comment by: shire at facebook dot com Reported By: owen dot beresford at murphx dot com Status: No Feedback Bug Type: Scripting Engine problem Operating System: linux PHP Version: 5.0.1 New Comment: I'm able to reproduce this using current CVS. The problem appears to be when a CV value is passed into extract() either as the array or an array value. Looks like in this case the IS_CV value is assigned to EG(uninitialized_zval_ptr). The following patch will correct the problem for this case (and still pass a php 'make test'). However I'm not familiar enough with CV to know if there's a better way to correct to this problem: diff --git a/ext/standard/array.c b/ext/standard/array.c index fad4bf2..fdc9a88 100644 --- a/ext/standard/array.c +++ b/ext/standard/array.c @@ -1438,7 +1438,7 @@ PHP_FUNCTION(extract) *orig_var = *entry; } else { - if ((*var_array)->refcount > 1) { + if ((*var_array)->refcount > 1 || *entry == EG(uninitialized_zval_ptr)) { SEPARATE_ZVAL_TO_MAKE_IS_REF(entry); } else { (*entry)->is_ref = 1; Previous Comments: ------------------------------------------------------------------------ [2005-06-15 23:06:27] t3 at rohms dot com Has this bug been fixed in a release yet? I'd like to see comments added to these to indicate so and with what versions. ------------------------------------------------------------------------ [2005-03-15 01:00:12] php-bugs at lists dot php dot net No feedback was provided for this bug for over a week, so it is being suspended automatically. If you are able to provide the information that was originally requested, please do so and change the status of the bug back to "Open". ------------------------------------------------------------------------ [2005-03-07 21:42:05] sniper@php.net Please try using this CVS snapshot: http://snaps.php.net/php5-latest.tar.gz For Windows: http://snaps.php.net/win32/php5-win32-latest.zip ------------------------------------------------------------------------ [2005-01-29 21:36:34] t3 at rohms dot com I believe my problem may be related; I also filed a <a href="http://bugs.php.net/?id=31753">report</a> but not every isntance of extract() was causing problems. I was running 4.3.6 with no problems; upgraded to 4.3.10 and code didn't work; updated to latest version of zend; didn't work; downgraded back to 4.3.6, didn't work; downgraded to 4.3.6 and switched back to previous version of zend: worked. It seems that the new version of zend may be invovled in the problem. I wonder if turning down the optimization level would help? ------------------------------------------------------------------------ [2005-01-19 22:10:26] sniper@php.net See also bug #31217 ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/30074 -- Edit this bug report at http://bugs.php.net/?id=30074&edit=1

« previous php.bugs (#106146) next »