|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2004-11-07 00:08 UTC] 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 ()
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sun Oct 26 03:00:01 2025 UTC |
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; ?>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()); ?>Program received signal SIGSEGV, Segmentation fault. [Switching to Thread -1208719680 (LWP 31723)] 0x0812c49f in zend_do_fcall_common_helper_SPEC (execute_data=0xbff2c160) at zend_vm_execute.h:120 120 if (EX(function_state).function->common.fn_flags & ZEND_ACC_ABSTRACT) { (gdb) bt #0 0x0812c49f in zend_do_fcall_common_helper_SPEC (execute_data=0xbff2c160) at zend_vm_execute.h:120 #1 0x0812c3c9 in execute (op_array=0x8bdd8e4) at zend_vm_execute.h:78 #2 0x0810ea63 in zend_execute_scripts (type=8, retval=0x0, file_count=3) at /usr/src/php/php5/Zend/zend.c:1059 #3 0x080dcd78 in php_execute_script (primary_file=0xbff2e600) at /usr/src/php/php5/main/main.c:1653 #4 0x08186a5f in main (argc=2, argv=0xbff2e6c4) at /usr/src/php/php5/sapi/cli/php_cli.c:954