diff options
| author | Marcus Boerger <helly@php.net> | 2005-01-25 10:40:51 +0000 |
|---|---|---|
| committer | Marcus Boerger <helly@php.net> | 2005-01-25 10:40:51 +0000 |
| commit | 82193adc09d7f107fcfedcb544b5a8f76e1dc33f (patch) | |
| tree | 987bc8a81f98b75b9b8a3f43115917824245ae7e /Zend/zend_vm_execute.h | |
| parent | 14e54cdc1e438f9149f90f652c0497e82f81497a (diff) | |
| download | php-git-82193adc09d7f107fcfedcb544b5a8f76e1dc33f.tar.gz | |
- Bugfix #26229 (getIterator() segfaults when it returns arrays or scalars)
Diffstat (limited to 'Zend/zend_vm_execute.h')
| -rw-r--r-- | Zend/zend_vm_execute.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h index 266f2b6868..b2f075bbe1 100644 --- a/Zend/zend_vm_execute.h +++ b/Zend/zend_vm_execute.h @@ -1968,6 +1968,9 @@ static int ZEND_FE_RESET_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) } else { ; } + if (!EG(exception)) { + zend_throw_exception_ex(NULL, 0 TSRMLS_CC, "Object of type %s did not create an Iterator", ce->name); + } zend_throw_exception_internal(NULL TSRMLS_CC); ZEND_VM_NEXT_OPCODE(); } @@ -4384,6 +4387,9 @@ static int ZEND_FE_RESET_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) } else { ; } + if (!EG(exception)) { + zend_throw_exception_ex(NULL, 0 TSRMLS_CC, "Object of type %s did not create an Iterator", ce->name); + } zend_throw_exception_internal(NULL TSRMLS_CC); ZEND_VM_NEXT_OPCODE(); } @@ -7462,6 +7468,9 @@ static int ZEND_FE_RESET_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) } else { if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; } + if (!EG(exception)) { + zend_throw_exception_ex(NULL, 0 TSRMLS_CC, "Object of type %s did not create an Iterator", ce->name); + } zend_throw_exception_internal(NULL TSRMLS_CC); ZEND_VM_NEXT_OPCODE(); } @@ -18238,6 +18247,9 @@ static int ZEND_FE_RESET_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) } else { ; } + if (!EG(exception)) { + zend_throw_exception_ex(NULL, 0 TSRMLS_CC, "Object of type %s did not create an Iterator", ce->name); + } zend_throw_exception_internal(NULL TSRMLS_CC); ZEND_VM_NEXT_OPCODE(); } @@ -30537,6 +30549,9 @@ static int ZEND_FE_RESET_HANDLER(ZEND_OPCODE_HANDLER_ARGS) } else { FREE_OP_IF_VAR(free_op1); } + if (!EG(exception)) { + zend_throw_exception_ex(NULL, 0 TSRMLS_CC, "Object of type %s did not create an Iterator", ce->name); + } zend_throw_exception_internal(NULL TSRMLS_CC); ZEND_VM_NEXT_OPCODE(); } |
