Edit report at https://bugs.php.net/bug.php?id=60682&edit=1

 ID:                 60682
 Updated by:         larue...@php.net
 Reported by:        charlie at charliesomerville dot com
 Summary:            Infinite recursion through call_user_func causes
                     segmentation fault
 Status:             Bogus
 Type:               Bug
 Package:            Reproducible crash
 Operating System:   Irrelevant
 PHP Version:        5.3.8
 Block user comment: N
 Private report:     N

 New Comment:

sure, that is because there is some improvment in zend_execute which make the 
function call no-need to call zend_execute recursivly, 

but call to zend_call_user_function is definitly will be recursivly.

thanks


Previous Comments:
------------------------------------------------------------------------
[2012-01-09 04:32:20] charlie at charliesomerville dot com

I believe a segmentation fault due to a VM stack overflow is *definitely* a 
bug. 
You'd be hard-pressed to find another managed language where user code that 
recurses too deep actually crashes the VM.

PHP manages to handle stack overflows just fine in other situations anyway:

    function f() { f(); }

    function f() { $a = "f"; $a(); }

Neither of those functions will crash the interpreter when called.

------------------------------------------------------------------------
[2012-01-09 04:26:44] larue...@php.net

Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to report
a bug at http://bugs.php.net/how-to-report.php

reason is stack overflow, not php issues, but fyi, you can install xdebug to 
prevent this.

------------------------------------------------------------------------
[2012-01-07 15:49:55] charlie at charliesomerville dot com

Description:
------------
The PHP interpreter crashes when a call_user_func recurses too deep, rather 
than 
dying with a memory error.

Test script:
---------------
<?php

function f() { call_user_func("f"); }
f();

Expected result:
----------------
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to 
allocate 
523800 bytes) in /Users/charlie/crap/notsegfault.php on line 4

Actual result:
--------------
Segmentation fault


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



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

Reply via email to