#19243 [Opn->Ana]: Seg Fault Restoring Session Variables with References to Objects

From: Date: Thu, 05 Sep 2002 11:19:06 +0000
Subject: #19243 [Opn->Ana]: Seg Fault Restoring Session Variables with References to Objects
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-18479@lists.php.net to get a copy of this message
ID: 19243 Updated by: yohgaki@php.net Reported By: fdruseikis@sc.rr.com -Status: Open +Status: Analyzed Bug Type: Reproducible crash Operating System: Linux RH 7.0 PHP Version: 4.2.2 New Comment: Don't do that. It will never work. We should raise error and ignore references. Previous Comments: ------------------------------------------------------------------------ [2002-09-05 05:03:07] fdruseikis@sc.rr.com The following script demonstrates a problem with restoring session variables that have references to objects. Variables o1 and o2 are supposed to be globals refering to the same object instance. First GET request initializes; POST request changes state. Crash occurs on first POST or second GET. Apache 1.3.26 reports a segmentation fault. Browser (lynx) indicates "Unexpected Network Read Error; ..." If you remove 'o2' from session_register() and initialize the reference to o1 in the POST the crash goes away. Fred Druseikis -------------------- <snip> ----------------------------- <?php # vim: ts=4 filetype=php # segmentation fault on restore of object references class TFoo { var $c; function TFoo($c) { $this->c = $c; } function inc() { $this->c++; } } global $o1, $o2; session_register('o1', 'o2' ); session_start(); if( $_SERVER['REQUEST_METHOD'] == 'GET' ) { echo "GET<br>"; $o1 =& new TFoo(42); $o2 =& $o1; } if( $_SERVER['REQUEST_METHOD'] == 'POST' ) { echo "POST<br>"; } $o1->inc(); $o2->inc(); echo "<tt>o1</tt><br><pre>"; print_r($o1); echo "</pre>"; echo "<tt>o2</tt><br><pre>"; print_r($o2); echo "</pre>"; ?> <html> <head> </head> <body> <form action='/web/a/register/foo.php' method='post' > <input type='text' name='x' value='42' /> <input type='submit' name='submit' value='Submit' /> </form> </body> </html> ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=19243&edit=1

« previous php.bugs (#18479) next »