Edit report at https://bugs.php.net/bug.php?id=47948&edit=1
ID: 47948 Updated by: [email protected] Reported by: ehassler at synapsestudios dot com Summary: call_user_func_array() with autoload causes crash -Status: Feedback +Status: No Feedback Type: Bug Package: Reproducible crash Operating System: * PHP Version: 5.2.9 New Comment: No feedback was provided. The bug is being suspended because we assume that you are no longer experiencing the problem. If this is not the case and you are able to provide the information that was requested earlier, please do so and change the status of the bug back to "Open". Thank you. Previous Comments: ------------------------------------------------------------------------ [2010-06-22 00:39:33] [email protected] Please try using this snapshot: http://snaps.php.net/php5.2-latest.tar.gz For Windows: http://windows.php.net/snapshots/ ------------------------------------------------------------------------ [2010-02-12 15:31:34] janssens dot cyril at gmail dot com Same problem on Debian 5 32bit + php 5.2.6 when using recursive call_user_func_array function. The workaround is to use eval statement: $object = 'foo'; $method = 'bar'; $args = array();//some arguments $i=0; $strArg=''; foreach ($args as $arg){ $varname = 'arg'.$i; $$varname = $arg; $strArg .= '$'.$varname.','; $i++; } $strArg = substr($strArg,0,-1); $cmd = '$_return = '.$object.'::'.$method.'('.$strArg.');'; eval($cmd); //Enjoy :-) return $_return; Regards, Cyril ------------------------------------------------------------------------ [2010-01-11 01:00:00] php-bugs at lists dot php dot net No feedback was provided for this bug for over a week, so it is being suspended automatically. If you are able to provide the information that was originally requested, please do so and change the status of the bug back to "Open". ------------------------------------------------------------------------ [2010-01-08 16:27:47] muqker at muqker dot com I didn't know about Edit Submission. However, I did not open this bug, I just had the same problem and tried to provide a script to reproduce. Should I use that anyway? Yes, the crash is there. I am getting: [Fri Jan 08 17:55:49 2010] [notice] child pid 3534 exit signal Segmentation fault (11) in apache2's error log and the browser reports that it receives "Error 324 (net::ERR_EMPTY_RESPONSE): Unknown error." php -n index.php ends with "Segmentation Fault". If I include explicitly the class that otherwise autoload tries to load, or if I do not use call_user_func_array, but a normal call, then the crash is gone. Some system info: PHP Version 5.2.6-3ubuntu4.2 Apache Version Apache/2.2.11 (Ubuntu) DAV/2 SVN/1.5.4 PHP/5.2.6- 3ubuntu4.2 with Suhosin-Patch Apache API Version 20051115 Loaded Modules core mod_log_config mod_logio prefork http_core mod_so mod_alias mod_auth_basic mod_authn_file mod_authz_default mod_authz_groupfile mod_authz_host mod_authz_user mod_autoindex mod_cgi mod_dav mod_dav_fs mod_dav_svn mod_authz_svn mod_deflate mod_dir mod_env mod_mime mod_negotiation mod_php5 mod_rewrite mod_setenvif mod_status Linux dufus 2.6.28-16-generic #55-Ubuntu SMP Tue Oct 20 19:48:24 UTC 2009 i686 GNU C Library stable release version 2.9, by Roland McGrath et al. Let me know if I can provide any other info. ------------------------------------------------------------------------ [2010-01-03 20:54:56] [email protected] When editing you have to use the "Edit Submission" tab to re-open it. Are you sure the script you provided is correct - it works for me, as far as I can tell, on 5.2 and 5.3 while there is a warning for a missing parameter: $ php -n index.php <pre>array(7) { [0]=> array(7) { ["file"]=> string(47) "/tmp/test47948/muqker/index.php" ["line"]=> int(41) ["function"]=> string(1) "f" ["class"]=> string(1) "A" ["object"]=> object(A)#2 (0) { } ["type"]=> string(2) "->" ["args"]=> array(0) { } } [1]=> array(7) { ["file"]=> string(47) "/tmp/test47948/muqker/index.php" ["line"]=> int(45) ["function"]=> string(1) "g" ["class"]=> string(1) "A" ["object"]=> object(A)#2 (0) { } ["type"]=> string(2) "->" ["args"]=> array(0) { } } [2]=> array(7) { ["file"]=> string(47) "/tmp/test47948/muqker/index.php" ["line"]=> int(15) ["function"]=> string(1) "h" ["class"]=> string(1) "A" ["object"]=> object(A)#2 (0) { } ["type"]=> string(2) "->" ["args"]=> array(0) { } } [3]=> array(7) { ["file"]=> string(47) "/tmp/test47948/muqker/index.php" ["line"]=> int(19) ["function"]=> string(2) "zz" ["class"]=> string(10) "Controller" ["object"]=> object(Controller)#1 (0) { } ["type"]=> string(2) "->" ["args"]=> array(0) { } } [4]=> array(7) { ["file"]=> string(47) "/tmp/test47948/muqker/index.php" ["line"]=> int(23) ["function"]=> string(10) "executeNew" ["class"]=> string(10) "Controller" ["object"]=> object(Controller)#1 (0) { } ["type"]=> string(2) "->" ["args"]=> array(1) { [0]=> &NULL } } [5]=> array(7) { ["file"]=> string(47) "/tmp/test47948/muqker/index.php" ["line"]=> int(59) ["function"]=> string(13) "executeClient" ["class"]=> string(10) "Controller" ["object"]=> object(Controller)#1 (0) { } ["type"]=> string(2) "->" ["args"]=> array(1) { [0]=> &NULL } } [6]=> array(4) { ["file"]=> string(47) "/tmp/test47948/muqker/index.php" ["line"]=> int(62) ["function"]=> string(4) "main" ["args"]=> array(0) { } } } Warning: Missing argument 2 for CheckedFacilityPeer::getCheckedFacilities() in /tmp/test47948/muqker/CheckedFacilityPeer.php on line 42 ff ------------------------------------------------------------------------ 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 https://bugs.php.net/bug.php?id=47948 -- Edit this bug report at https://bugs.php.net/bug.php?id=47948&edit=1
