(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)
--- /dev/null
+--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
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);
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);
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);
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);