Bug #11617 Updated: crash when restoring references
| From: | sniper@php.net | 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