mirror of
https://github.com/php/php-src.git
synced 2024-09-22 02:17:32 +00:00
Fix bug #69599
This commit is contained in:
parent
33594b78ec
commit
e1cb22a23e
1
NEWS
1
NEWS
@ -19,6 +19,7 @@ PHP NEWS
|
||||
(Nikita)
|
||||
. Fixed bug #69472 (php_sys_readlink ignores misc errors from
|
||||
GetFinalPathNameByHandleA). (Jan Starke)
|
||||
. Fixed bug #69599 (Strange generator+exception+variadic crash). (Nikita)
|
||||
|
||||
- Iconv:
|
||||
. Fixed bug #48147 (iconv with //IGNORE cuts the string). (Stas)
|
||||
|
21
Zend/tests/bug69599.phpt
Normal file
21
Zend/tests/bug69599.phpt
Normal file
@ -0,0 +1,21 @@
|
||||
--TEST--
|
||||
Bug #69599: Strange generator+exception+variadic crash
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
function crash() {
|
||||
sin(...[0]);
|
||||
throw new \Exception();
|
||||
yield;
|
||||
}
|
||||
|
||||
iterator_to_array(crash());
|
||||
|
||||
?>
|
||||
--EXPECTF--
|
||||
Fatal error: Uncaught exception 'Exception' in %s:%d
|
||||
Stack trace:
|
||||
#0 [internal function]: crash()
|
||||
#1 %s(%d): iterator_to_array(Object(Generator))
|
||||
#2 {main}
|
||||
thrown in %s on line %d
|
@ -1887,7 +1887,7 @@ ZEND_VM_HELPER(zend_leave_helper, ANY, ANY)
|
||||
|
||||
EX(call)--;
|
||||
|
||||
zend_vm_stack_clear_multiple(1 TSRMLS_CC);
|
||||
zend_vm_stack_clear_multiple(0 TSRMLS_CC);
|
||||
|
||||
if (UNEXPECTED(EG(exception) != NULL)) {
|
||||
zend_throw_exception_internal(NULL TSRMLS_CC);
|
||||
@ -2075,7 +2075,7 @@ ZEND_VM_HELPER(zend_do_fcall_common_helper, ANY, ANY)
|
||||
|
||||
EX(call)--;
|
||||
|
||||
zend_vm_stack_clear_multiple(1 TSRMLS_CC);
|
||||
zend_vm_stack_clear_multiple(0 TSRMLS_CC);
|
||||
|
||||
if (UNEXPECTED(EG(exception) != NULL)) {
|
||||
zend_throw_exception_internal(NULL TSRMLS_CC);
|
||||
|
@ -459,7 +459,7 @@ static int ZEND_FASTCALL zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS)
|
||||
|
||||
EX(call)--;
|
||||
|
||||
zend_vm_stack_clear_multiple(1 TSRMLS_CC);
|
||||
zend_vm_stack_clear_multiple(0 TSRMLS_CC);
|
||||
|
||||
if (UNEXPECTED(EG(exception) != NULL)) {
|
||||
zend_throw_exception_internal(NULL TSRMLS_CC);
|
||||
@ -647,7 +647,7 @@ static int ZEND_FASTCALL zend_do_fcall_common_helper_SPEC(ZEND_OPCODE_HANDLER_AR
|
||||
|
||||
EX(call)--;
|
||||
|
||||
zend_vm_stack_clear_multiple(1 TSRMLS_CC);
|
||||
zend_vm_stack_clear_multiple(0 TSRMLS_CC);
|
||||
|
||||
if (UNEXPECTED(EG(exception) != NULL)) {
|
||||
zend_throw_exception_internal(NULL TSRMLS_CC);
|
||||
|
Loading…
Reference in New Issue
Block a user