From: brunswim at seas dot upenn dot edu
Operating system: Debian Linux 2.4.18
PHP version: 4.3.1
PHP Bug Type: Scripting Engine problem
Bug description: returning reference to uninitialized variable
f() returns a reference to an uninitialized variable $a. In subsequent
calls, this appears to corrupt the local variable $x. The following script
demonstrates the problem.
<?
function &f() {
$x = "foo";
var_dump($x);
print "<br>\n$x<br>\n";
return($a);
}
for ($i = 0; $i < 8; $i++) {
$h =& f();
}
?>
On the third call to f(), $x prints fine but is reported to be NULL by
var_dump(). Operations on $x will subsequently cause unexpected
behavior.
We can change the behavior of $x by adding the line:
$y = "bar";
after the line:
$x = "foo";
If we do this, printing $x returns "bar" but var_dump() still returns
NULL.
--
Edit bug report at http://bugs.php.net/?id=22836&edit=1
--
Try a CVS snapshot: http://bugs.php.net/fix.php?id=22836&r=trysnapshot
Fixed in CVS: http://bugs.php.net/fix.php?id=22836&r=fixedcvs
Fixed in release: http://bugs.php.net/fix.php?id=22836&r=alreadyfixed
Need backtrace: http://bugs.php.net/fix.php?id=22836&r=needtrace
Try newer version: http://bugs.php.net/fix.php?id=22836&r=oldversion
Not developer issue: http://bugs.php.net/fix.php?id=22836&r=support
Expected behavior: http://bugs.php.net/fix.php?id=22836&r=notwrong
Not enough info: http://bugs.php.net/fix.php?id=22836&r=notenoughinfo
Submitted twice: http://bugs.php.net/fix.php?id=22836&r=submittedtwice
register_globals: http://bugs.php.net/fix.php?id=22836&r=globals
PHP 3 support discontinued: http://bugs.php.net/fix.php?id=22836&r=php3
Daylight Savings: http://bugs.php.net/fix.php?id=22836&r=dst
IIS Stability: http://bugs.php.net/fix.php?id=22836&r=isapi
Install GNU Sed: http://bugs.php.net/fix.php?id=22836&r=gnused