#46156 [Asn]: Infinite recursion in class destructor causes crash
| From: | kalle@php.net | Date: | Fri, 13 Mar 2009 11:12:46 +0000 |
| Subject: | #46156 [Asn]: Infinite recursion in class destructor causes crash | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-134662@lists.php.net to get a copy of this message | ||
ID: 46156
Updated by: kalle@php.net
Reported By: kalle@php.net
Status: Assigned
Bug Type: Reproducible crash
Operating System: *
-PHP Version: 5CVS-2008-11-11
+PHP Version: 5.3 Beta 1
Assigned To: dmitry
New Comment:
This one is a little odd, however I get a memory_limit error but
straight after it crashes:
<?php
start:
{
$a = function($b) use($a)
{
$a();
};
}
goto start;
?>
Previous Comments:
------------------------------------------------------------------------
[2009-02-16 12:19:00] kalle@php.net
Heres another one with __call():
<?php
class Test
{
public function __call($call, Array $args)
{
call_user_func_array(Array($this, $call), $args);
}
}
$test = new Test;
$test->crash();
?>
------------------------------------------------------------------------
[2008-12-05 07:28:28] kalle@php.net
I've discovered one more crash and reported here of the same type:
http://bugs.php.net/bug.php?id=46754
------------------------------------------------------------------------
[2008-09-23 10:00:25] kalle@php.net
Description:
------------
Creating a new instance of the same class in a class destructor which
causes infinite recursion will cause PHP to crash, instead of throwing a
memory_limit error.
Dmitry told me to report this so it wouldn't be forgotten.
Reproduce code:
---------------
<?php
class Crash
{
public function __destruct()
{
new self;
}
}
new Crash;
?>
Expected result:
----------------
memory_limit error
Actual result:
--------------
Crash
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=46156&edit=1