diff options
author | Dmitry Stogov <dmitry@php.net> | 2005-10-31 19:25:14 +0000 |
---|---|---|
committer | Dmitry Stogov <dmitry@php.net> | 2005-10-31 19:25:14 +0000 |
commit | 681405fc4a9cfc76d7a2312e286f038c28fb267a (patch) | |
tree | bef631c1266651839ca3e01f5bec41fdb36af80e /Zend/zend_execute.c | |
parent | 24a80c3ebf283cca9edece0f971469f3a9726803 (diff) | |
download | php-git-681405fc4a9cfc76d7a2312e286f038c28fb267a.tar.gz |
Fixed bug #35017 (Exception thrown in error handler may cause unexpected behavior)
Diffstat (limited to 'Zend/zend_execute.c')
-rw-r--r-- | Zend/zend_execute.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c index 401a344b0a..bbe056457a 100644 --- a/Zend/zend_execute.c +++ b/Zend/zend_execute.c @@ -1371,6 +1371,11 @@ ZEND_API void execute_internal(zend_execute_data *execute_data_ptr, int return_v CHECK_SYMBOL_TABLES() \ EX(opline) = new_op +#define ZEND_VM_JMP(new_op) \ + CHECK_SYMBOL_TABLES() \ + EX(opline) = EG(exception)?EX(opline)+1:new_op; \ + ZEND_VM_CONTINUE() + #define ZEND_VM_INC_OPCODE() \ if (!EG(exception)) { \ CHECK_SYMBOL_TABLES() \ @@ -1388,9 +1393,6 @@ ZEND_API void execute_internal(zend_execute_data *execute_data_ptr, int return_v EG(current_execute_data) = EX(prev_execute_data); \ ZEND_VM_RETURN() -#define ZEND_VM_CONTINUE_JMP() \ - ZEND_VM_CONTINUE() - #include "zend_vm_execute.h" ZEND_API int zend_set_user_opcode_handler(zend_uchar opcode, opcode_handler_t handler) |