ID:               31106
 User updated by:  alan at akbkhome dot com
 Reported By:      alan at akbkhome dot com
-Status:           Feedback
+Status:           Open
 Bug Type:         Reproducible crash
 Operating System: linux
 PHP Version:      4.3.10
 Assigned To:      stas
 New Comment:

nice simple test case .. - causes segfault

<?php
class DBO {
   function factory() {
        $x = new DBO;
        return $x;
   }
   var $x;
   function w($s) {
        $this->x = $s;
   }
   function __call($a,$b,&$c) {
        echo "$a";
        return FALSE;
   }
}
overload('DBO');

$a = DBO::factory();
$a->w('test');
$a->bbb = 0;


Previous Comments:
------------------------------------------------------------------------

[2004-12-17 13:00:49] [EMAIL PROTECTED]

I'll try and get a test case done over the weekend..

should be quite simple - create a overloaded object (with __call) - and
assign some vars's then set it so something else.. (based on a rough
guess)..

The real code is a bit to complex for a simple test case - but it broke
both my devel servers. ;)

------------------------------------------------------------------------

[2004-12-17 11:23:05] [EMAIL PROTECTED]

Can you provide some example of the code that crashes? Of course I'd
prefer the code that I could run, so that I can check what's the
problem.

Removing unlock won't do good - it would just cause a memory leak.

------------------------------------------------------------------------

[2004-12-16 09:57:55] [EMAIL PROTECTED]

Actually both changes in this commit cause big problems with overloaded
objects

http://cvs.php.net/diff.php/Zend/Attic/zend_execute.c?sa=1&r1=1.316.2.41&r2=1.316.2.42&ty=u

removing 1st fixes crashes
removing 2nd fixes object properties getting destroyed/lost? when
calling methods of overloaded objects.

------------------------------------------------------------------------

[2004-12-16 08:12:44] [EMAIL PROTECTED]

change title to be more precise..

------------------------------------------------------------------------

[2004-12-16 08:04:45] alan at akbkhome dot com

This fixes it.

--- zend_execute.c      2004-12-16 15:18:16.000000000 +0800
+++ zend_execute.c.fixed        2004-12-16 15:18:28.000000000 +0800
@@ -996,7 +996,6 @@
        }
       
zend_llist_destroy(T->EA.data.overloaded_element.elements_list);
        efree(T->EA.data.overloaded_element.elements_list);
-       PZVAL_UNLOCK(T->EA.data.overloaded_element.object);
 }

------------------------------------------------------------------------

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/31106

-- 
Edit this bug report at http://bugs.php.net/?id=31106&edit=1

Reply via email to