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

Reply via email to