diff options
| author | Dmitry Stogov <dmitry@zend.com> | 2016-12-20 16:53:06 +0300 |
|---|---|---|
| committer | Dmitry Stogov <dmitry@zend.com> | 2016-12-20 16:53:06 +0300 |
| commit | 43cc3d7d9297328f6b63165a66d0a2d2e485023c (patch) | |
| tree | a310f355fd0dff077a69ba2b840a15c0625dd5c9 /Zend | |
| parent | 6bd41a1d47417ad2c7938a57c8abca4e210d5cf6 (diff) | |
| parent | 3c6a2fb08cb8c0dddc16a62a816249c68132773d (diff) | |
| download | php-git-43cc3d7d9297328f6b63165a66d0a2d2e485023c.tar.gz | |
Merge branch 'PHP-7.0' into PHP-7.1
* PHP-7.0:
Fixed bug #73792 (invalid foreach loop hangs script)
Diffstat (limited to 'Zend')
| -rw-r--r-- | Zend/tests/bug73792.phpt | 20 | ||||
| -rw-r--r-- | Zend/zend_execute.c | 3 |
2 files changed, 23 insertions, 0 deletions
diff --git a/Zend/tests/bug73792.phpt b/Zend/tests/bug73792.phpt new file mode 100644 index 0000000000..ac4f265aaf --- /dev/null +++ b/Zend/tests/bug73792.phpt @@ -0,0 +1,20 @@ +--TEST-- +Bug #73792 (invalid foreach loop hangs script) +--FILE-- +<?php +$a = 'aaa'; + +foreach ($a['bbb'] as &$value) { + echo 'loop'; +} + +unset($value); +echo 'done'; +?> +--EXPECTF-- +Warning: Illegal string offset 'bbb' in %sbug73792.php on line 4 + +Fatal error: Uncaught Error: Cannot iterate on string offsets by reference in %sbug73792.php:4 +Stack trace: +#0 {main} + thrown in %sbug73792.php on line 4 diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c index 647428f959..0b98cab44b 100644 --- a/Zend/zend_execute.c +++ b/Zend/zend_execute.c @@ -1269,6 +1269,9 @@ static zend_never_inline ZEND_COLD void zend_wrong_string_offset(void) case ZEND_SEND_VAR_EX: msg = "Only variables can be passed by reference"; break; + case ZEND_FE_RESET_RW: + msg = "Cannot iterate on string offsets by reference"; + break; EMPTY_SWITCH_DEFAULT_CASE(); } break; |
