From: Dmitry Stogov Date: Thu, 1 Dec 2005 12:50:58 +0000 (+0000) Subject: Fixed bug #35437 (Segfault or Invalid Opcode 137/1/4) X-Git-Tag: php-5.1.2RC1~276 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=916ad6c8f71b340a13800f2be08cd83c96242874;p=php Fixed bug #35437 (Segfault or Invalid Opcode 137/1/4) --- diff --git a/NEWS b/NEWS index 7629acc674..d1df4cfa6b 100644 --- a/NEWS +++ b/NEWS @@ -19,6 +19,7 @@ PHP NEWS connecting to 5.x server. (Andrey) - Fixed bug #35496 (Crash in mcrypt_generic()/mdecrypt_generic() without proper init). (Ilia) +- Fixed bug #35437 (Segfault or Invalid Opcode 137/1/4). (Dmitry) - Fixed bug #34729 (Crash in ZTS mode under Apache). (Dmitry, Zeev) - Fixed bug #35470 (Assigning global using variable name from array doesn't function). (Dmitry) diff --git a/Zend/tests/bug35437.phpt b/Zend/tests/bug35437.phpt new file mode 100755 index 0000000000..eecdee9683 --- /dev/null +++ b/Zend/tests/bug35437.phpt @@ -0,0 +1,27 @@ +--TEST-- +Bug #35437 Segfault or Invalid Opcode 137/1/4 +--FILE-- +getMessage()."\n"; +} +?> +--EXPECT-- +Catched: Error occuried: Non-static method TestClass::testMethod() should not be called statically diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h index d87382402a..8abcb9d59c 100644 --- a/Zend/zend_vm_execute.h +++ b/Zend/zend_vm_execute.h @@ -36,6 +36,10 @@ ZEND_API void execute(zend_op_array *op_array TSRMLS_DC) zend_execute_data execute_data; + if (EG(exception)) { + return; + } + /* Initialize execute_data */ EX(fbc) = NULL; EX(object) = NULL; diff --git a/Zend/zend_vm_execute.skl b/Zend/zend_vm_execute.skl index 6cfd1bbcd3..9a3bd5038d 100644 --- a/Zend/zend_vm_execute.skl +++ b/Zend/zend_vm_execute.skl @@ -7,6 +7,10 @@ ZEND_API void {%EXECUTOR_NAME%}(zend_op_array *op_array TSRMLS_DC) {%INTERNAL_LABELS%} + if (EG(exception)) { + return; + } + /* Initialize execute_data */ EX(fbc) = NULL; EX(object) = NULL;