ID: 30707
User updated by: guth at fiifo dot u-psud dot fr
Reported By: guth at fiifo dot u-psud dot fr
Status: Assigned
Bug Type: Zend Engine 2 problem
Operating System: Linux
PHP Version: 5.0.2
Assigned To: andi
New Comment:
Same bug, different code.
two hours lost :(
The constructor contains a return statement, but it is only
<?php
class UserModuleTest {
public function __construct($obj) {
try {
new UserModuleTest($this->query());
} catch(Exception $e) {
}
}
public function query() {
throw new Exception;
}
}
$test = new UserModuleTest(new UserModuleTest());
?>
Previous Comments:
------------------------------------------------------------------------
[2004-11-10 19:02:50] [EMAIL PROTECTED]
This code is much simplier IMO and demonstrates the same behaviour
(both with 5.0.x & 5.1.x):
<?
class C {
public function __construct() {
$this->byePHP($this->plip());
}
public function byePHP($plop) {
echo "www.haricow.org";
}
public function plip() {
try {
$this->plap($this->plop());
}
catch(Exception $e) {
}
}
public function plap($a) {
}
public function plop() {
throw new Exception;
}
}
new C;
?>
------------------------------------------------------------------------
[2004-11-07 00:08:56] guth at fiifo dot u-psud dot fr
Description:
------------
I get another segmentation fault...
You can look at the reproduce code.
Reproduce code:
---------------
<?php
class B {
public function plip() {
try {
$this->plap($this->plop());
}
catch(Exception $e) {
}
}
public function plap($a) {
}
public function plop() {
throw new Exception;
}
}
class C {
public function __construct() {
$b = new B;
$this->byePHP($b->plip());
}
public function byePHP($plop) {
echo "www.haricow.org";
}
}
new C;
?>
Expected result:
----------------
www.haricow.org
Actual result:
--------------
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1075737248 (LWP 3881)]
0x403d2373 in zend_do_fcall_common_helper
(execute_data=0xbfffccd0, opline=0x8170c64,
op_array=0x816f784)
at /usr/src/php5/Zend/zend_execute.c:2656
2656 if
(EX(function_state).function->common.fn_flags &
ZEND_ACC_ABSTRACT) {
(gdb) bt
#0 0x403d2373 in zend_do_fcall_common_helper
(execute_data=0xbfffccd0, opline=0x8170c64,
op_array=0x816f784)
at /usr/src/php5/Zend/zend_execute.c:2656
#1 0x403d2c63 in zend_do_fcall_by_name_handler
(execute_data=0xbfffccd0, opline=0x8170c64,
op_array=0x816f784)
at /usr/src/php5/Zend/zend_execute.c:2825
#2 0x403cebee in execute (op_array=0x816f784) at
/usr/src/php5/Zend/zend_execute.c:1400
#3 0x403d2791 in zend_do_fcall_common_helper
(execute_data=0xbfffce20, opline=0x816b694,
op_array=0x816706c)
at /usr/src/php5/Zend/zend_execute.c:2740
#4 0x403d2c63 in zend_do_fcall_by_name_handler
(execute_data=0xbfffce20, opline=0x816b694,
op_array=0x816706c)
at /usr/src/php5/Zend/zend_execute.c:2825
#5 0x403cebee in execute (op_array=0x816706c) at
/usr/src/php5/Zend/zend_execute.c:1400
#6 0x403a9f5d in zend_execute_scripts (type=8,
retval=0x0, file_count=3)
at /usr/src/php5/Zend/zend.c:1060
#7 0x40362a94 in php_execute_script
(primary_file=0xbffff190) at
/usr/src/php5/main/main.c:1628
#8 0x403dab14 in apache_php_module_main (r=0x815c29c,
display_source_mode=0)
at /usr/src/php5/sapi/apache/sapi_apache.c:54
#9 0x403dba9f in send_php (r=0x815c29c,
display_source_mode=0, filename=0x815cda4 "/www/test.php")
at /usr/src/php5/sapi/apache/mod_php5.c:622
#10 0x403dbb18 in send_parsed_php (r=0x815c29c) at
/usr/src/php5/sapi/apache/mod_php5.c:637
#11 0x08071e77 in ap_invoke_handler ()
#12 0x08086ebd in process_request_internal ()
#13 0x08086f1c in ap_process_request ()
#14 0x0807df40 in child_main ()
#15 0x0807e0e8 in make_child ()
#16 0x0807e24e in startup_children ()
#17 0x0807e90e in standalone_main ()
#18 0x0807f12c in main ()
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=30707&edit=1