ID: 12793 Updated by: [EMAIL PROTECTED] Reported By: [EMAIL PROTECTED] -Status: Closed +Status: Open -Bug Type: Session related +Bug Type: Reproducible crash -Operating System: +Operating System: Linux -PHP Version: 4.0.6 +PHP Version: 4.0CVS-2002-03-0 New Comment:
I can reproduce the crash with the following backtrace: Starting program: /home/ek/projects/php/php4/sapi/cli/php -f ~/t sleep!<br> Program received signal SIGSEGV, Segmentation fault. 0x80dc1c8 in php_var_serialize (buf=0x7fffe3e0, struc=0x816c6ec, var_hash=0x7fffe3ec) at var.c:561 561 smart_str_0(buf); (gdb) bt #0 0x80dc1c8 in php_var_serialize (buf=0x7fffe3e0, struc=0x816c6ec, var_hash=0x7fffe3ec) at var.c:561 #1 0x80dc24f in zif_serialize (ht=1, return_value=0x81773ec, this_ptr=0x0, return_value_used=1) at var.c:583 #2 0x80f0ed1 in execute (op_array=0x81715d4) at ./zend_execute.c:1598 #3 0x807011c in zend_execute_scripts (type=8, retval=0x0, file_count=3) at zend.c:810 #4 0x807d51f in php_execute_script (primary_file=0x7ffff8dc) at main.c:1377 #5 0x805ad89 in main (argc=3, argv=0x7ffff944) at php_cli.c:555 Previous Comments: ------------------------------------------------------------------------ [2002-03-06 07:14:58] [EMAIL PROTECTED] Confirm this bug on PHP 4.0.6 and 4.1.1 on Windows 2000 Server and Apache 1.3.23 Here is requested testcase: <?php class myClass { function myClass() { } function __sleep() { echo 'sleep!<br>'; } function __wakeup() { echo 'wakeup!<br>'; } }; $obj = new myClass(); $str = serialize($obj); echo $str."<br>"; $obj2 = unserialize($str); print_r($obj2); ?> Running this script on PHP 4.0.6 will set $str to empty string (however __sleep() is called properly). Commenting out __sleep() method will return normal serialized value of an object. Running this script on PHP 4.1.1 cause PHP to crash. Please reopen this bug or i'll submit new one :) ------------------------------------------------------------------------ [2001-12-26 18:51:58] [EMAIL PROTECTED] No feedback. Closing. ------------------------------------------------------------------------ [2001-12-05 10:19:18] [EMAIL PROTECTED] Can you provide a _simple_ sample-script? ------------------------------------------------------------------------ [2001-08-16 10:28:56] [EMAIL PROTECTED] When I create a db connection object, call it "conn", with a __sleep function to close the connection when the object is serialized for a session, any object which has an instance of "conn" fails to load properly. For instance, if I have an object "permissions" that has a "conn" object, when I unserialize "permissions" from a session the class appears to never be defined. I don't get any error messages until I try to use "permissions," in which case it says "Call to a function of a non-object" whenever I try to use a function of "permissions." Never do I get an error from "conn" or "permissions." Comment out the __sleep function in "conn" and things work fine. My configure line: './configure' '--with-postgres' '--with-gd' '--with-pspell' '--with-apxs' ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=12793&edit=1