ID: 28687
User updated by: equake at epmail dot com dot br
Reported By: equake at epmail dot com dot br
-Status: Feedback
+Status: Open
Bug Type: Reproducible crash
Operating System: Linux 2.4.24
-PHP Version: 5.0.0RC2
+PHP Version: PHP5-200406081230
New Comment:
I'm still having problems with the CVS-PHP5-200406081230
[Tue Jun 08 10:43:03 2004] [notice] child pid 2711 exit signal
Segmentation fault (11)
But I think that the problem only happen when I try to return a
inexistent method inside a abstract class. The following code works
well (no segmentation fault):
class test {
function call($method, $params=null) {
if (is_callable(array($this, $method))) {
return $this->{$method}($params);
} else {
echo ("not found");
}
}
function message() {
return "TESTE DE MENSAGEM";
}
}
$test = new test();
$var = $test->call("not_exist");
echo $var;
Previous Comments:
------------------------------------------------------------------------
[2004-06-08 09:46:35] [EMAIL PROTECTED]
Please try using this CVS snapshot:
http://snaps.php.net/php5-latest.tar.gz
For Windows:
http://snaps.php.net/win32/php5-win32-latest.zip
------------------------------------------------------------------------
[2004-06-07 23:40:09] equake at epmail dot com dot br
Description:
------------
I got a Segmentation Fault every time that I try to return some method
that does not exists.
Reproduce code:
---------------
abstract class test {
function __call($method, $params) {
if (is_callable(array($this, $method))) {
echo ("ok<br>");
return $this->{$method}($params); // abstract class test {
function __call($method, $params) {
if (is_callable(array($this, $method))) {
echo ("ok<br>");
return $this->{$method}($params); // [error_log] [notice]
child pid
# exit signal Segmentation fault (11)
}
}
}
class test2 extends test {
function __construct() {
echo ("hi, im test2 at ". time () ." seconds since 01/01/1970
<br>");
}
function bla() {
echo ('haha');
}
}
$x = new test2();
$x->bla_inexistent(); // any inexistent method name
}
}
}
class test2 extends test {
function __construct() {
echo ("hi, im test2 at ". time () ." seconds since 01/01/1970
<br>");
}
function bla() {
echo ('haha');
}
}
$x = new test2();
$x->bla_inexistent(); // any inexistent method name
Expected result:
----------------
hi, im test2 at 1086644752 seconds since 01/01/1970
Actual result:
--------------
"[error_log] [notice] child pid # exit signal Segmentation fault (11)"
on the apache Error Log
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=28687&edit=1