#35437 [Opn->Asn]: Segfault or Invalid Opcode 137/1/4

From: Date: Mon, 28 Nov 2005 16:53:27 +0000
Subject: #35437 [Opn->Asn]: Segfault or Invalid Opcode 137/1/4
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-89267@lists.php.net to get a copy of this message
ID: 35437 Updated by: sniper@php.net Reported By: me at dither dot spb dot ru -Status: Open +Status: Assigned -Bug Type: Reproducible crash +Bug Type: Scripting Engine problem -Operating System: WinXPSP2, Fedora Core 3 +Operating System: * -PHP Version: 5.1.0 +PHP Version: 5CVS-2005-11-28 (cvs) -Assigned To: +Assigned To: dmitry New Comment: Here's GDB backtrace: 0x0820c3bf in zend_do_fcall_common_helper_SPEC (execute_data=0xbfe14f80) at /usr/src/php_5_1/Zend/zend_vm_execute.h:131 131 if (EX(function_state).function->common.fn_flags & ZEND_ACC_ABSTRACT) { (gdb) bt #0 0x0820c3bf in zend_do_fcall_common_helper_SPEC (execute_data=0xbfe14f80) at /usr/src/php_5_1/Zend/zend_vm_execute.h:131 #1 0x0820d0d7 in ZEND_DO_FCALL_BY_NAME_SPEC_HANDLER (execute_data=0xbfe14f80) at /usr/src/php_5_1/Zend/zend_vm_execute.h:310 #2 0x0820c30c in execute (op_array=0x9bd5d2c) at /usr/src/php_5_1/Zend/zend_vm_execute.h:88 #3 0x0820c792 in zend_do_fcall_common_helper_SPEC (execute_data=0xbfe150d0) at /usr/src/php_5_1/Zend/zend_vm_execute.h:222 #4 0x0820d0d7 in ZEND_DO_FCALL_BY_NAME_SPEC_HANDLER (execute_data=0xbfe150d0) at /usr/src/php_5_1/Zend/zend_vm_execute.h:310 #5 0x0820c30c in execute (op_array=0x9bcff0c) at /usr/src/php_5_1/Zend/zend_vm_execute.h:88 #6 0x081e3eca in zend_execute_scripts (type=8, retval=0x0, file_count=3) at /usr/src/php_5_1/Zend/zend.c:1090 #7 0x081a234e in php_execute_script (primary_file=0xbfe17500) at /usr/src/php_5_1/main/main.c:1704 #8 0x08252300 in main (argc=2, argv=0xbfe175d4) at /usr/src/php_5_1/sapi/cli/php_cli.c:1039 Previous Comments: ------------------------------------------------------------------------ [2005-11-28 17:43:49] me at dither dot spb dot ru PHP 5.1.2-dev (cli) (built: Nov 27 2005 20:24:18) (Win32). No changes. Problem persists. Sorry, I dont have enought time to test latest unix snapshot. If needed, I can do some testing across different unix versions tomorrow. Omg, sorry for my bad english.. ------------------------------------------------------------------------ [2005-11-28 09:13:58] sniper@php.net 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 ------------------------------------------------------------------------ [2005-11-28 04:19:49] me at dither dot spb dot ru Description: ------------ PHP 5.1 Final Release. (built: Nov 23 2005 23:59:35) Easy repoducible segfault or Invalid opcode 137/1/4 Fatal Error. Reproduce code: --------------- <?php function err2exception($errno, $errstr) { throw new Exception("Error occuried: " . $errstr); } set_error_handler('err2exception'); class TestClass { function testMethod() { //$GLOBALS['t'] = 'test'; $GLOBALS['t'] = new stdClass; } } TestClass::testMethod(); ?> Expected result: ---------------- PHP Should cause Strict level Notice "Non-static method TestClass::testMethod() should not be called statically", and after what error_handler err2exception() must be executed. Finally, it must be an Uncaught exception 'Exception' with message 'Error occuried: Non-static method TestClass::testMethod() should not be called statically'. Actual result: -------------- Segfault. Uncommenting line //$GLOBALS['t'] = 'test' causes Invalid opcode 137/1/4 Fatal Error. Commenting both $GLOBALS lines completly fixes bug. Marking method testMethod() as static (... static function testMethod() ...) fixes bug too, but no exception will be thrown. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=35437&edit=1

« previous php.bugs (#89267) next »