Bug #11617 Updated: crash when restoring references

From: Date: Sun, 24 Jun 2001 17:16:03 +0000
Subject: Bug #11617 Updated: crash when restoring references
Groups: php.dev 
Request: Send a blank email to php-dev+get-57846@lists.php.net to get a copy of this message
ID: 11617 Updated by: sniper Reported By: zork@pablosoft.com.pl Old-Status: Open Status: Closed Bug Type: *Session related Operating system: PHP Version: 4.0 Latest CVS (2001-06-22) Assigned To: Comments: Closed then. Previous Comments: --------------------------------------------------------------------------- [2001-06-24 12:49:11] zork@pablosoft.com.pl I've messed up something with my versions. Recompiled good and now it looks like it works fine. Sorry for confusion. Zork --------------------------------------------------------------------------- [2001-06-24 11:59:13] sniper@php.net And the GDB backtrace is where? Please include it. --------------------------------------------------------------------------- [2001-06-24 11:29:39] zork@pablosoft.com.pl Tried, but php still changed. Maybe it is something with CVS (forgot to commit?), I've checked session.c revision and result was: revision 1.213 date: 2001/06/21 18:46:25; author: thies; state: Exp; lines: +31 -26 I've submitted this bug later. Zork --------------------------------------------------------------------------- [2001-06-23 17:34:50] sniper@php.net Could you please try again? The fix wasn't ok, but now it's been rewritten and should work. If it still crashes, try to generate a gdb backtrace of the crash. And thank you for helping! --Jani --------------------------------------------------------------------------- [2001-06-22 11:01:25] zork@pablosoft.com.pl There is still problem in serialize/unserialize mechanism used to restore session variables(after closing #8676 bug which was supoused to correct the problem). Here is simplest script I can produce that does apache segfault on my machine: <? class Cscreen { var $page; var $frames; function Cscreen() { $this -> frames = array(); } }; class CError_handler { var $msg_error; function CError_handler() { $this -> msg_error = new CMessage(); } }; class CConnection_Table { var $data; function CConnection_table() { $this -> data = array(); } function mconnect($message,&$object,$method) { $data[0] = &$object; $data[1] = $method; $this -> data[$message -> msg_id][] = $data; } }; class CMessage { var $data; var $msg_id; function CMessage($data = 0) { global $__CMSGID_NEXT; $this -> msg_id = $__CMSGID_NEXT++; $this -> data = $data; } }; function MCONNECT(&$message,&$obj_name,$method_name) { global $__connection_table; $__connection_table -> mconnect($message,$obj_name,$method_name); }; session_start(); session_destroy(); $__connection_table = new CConnection_table; session_register("__connection_table"); $screen = new Cscreen(); session_register("screen"); $error_handler = new CError_handler($screen); MCONNECT($error_handler -> msg_error,$screen,"fatal_error"); session_register("error_handler"); echo "done"; exit(); --------------------------------------------------------------------------- The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online. ATTENTION! Do NOT reply to this email! To reply, use the web interface found at http://bugs.php.net/?id=11617&edit=2

« previous php.dev (#57846) next »