summaryrefslogtreecommitdiff
path: root/Zend
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2016-12-20 16:53:06 +0300
committerDmitry Stogov <dmitry@zend.com>2016-12-20 16:53:06 +0300
commit43cc3d7d9297328f6b63165a66d0a2d2e485023c (patch)
treea310f355fd0dff077a69ba2b840a15c0625dd5c9 /Zend
parent6bd41a1d47417ad2c7938a57c8abca4e210d5cf6 (diff)
parent3c6a2fb08cb8c0dddc16a62a816249c68132773d (diff)
downloadphp-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.phpt20
-rw-r--r--Zend/zend_execute.c3
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;