com php-src: Fixed bug #69756 (Fatal error: Nesting level too deep - recursive dependency? with ===): Zend/bug6 9756.phpt Zend/zend_hash.c
| From: | Dmitry Stogov | Date: | Fri, 05 Jun 2015 07:04:58 +0000 |
| Subject: | com php-src: Fixed bug #69756 (Fatal error: Nesting level too deep - recursive dependency? with ===): Zend/bug6 9756.phpt Zend/zend_hash.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-87070@lists.php.net to get a copy of this message | ||
Commit: ed5fbf5e49eab435cd7a0a9a5627698de92887c1
Author: Dmitry Stogov <dmitry@zend.com> Fri, 5 Jun 2015 10:04:58 +0300
Parents: d251ced225138381b61dfa5c5f682bbb28e309d9
Branches: master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=ed5fbf5e49eab435cd7a0a9a5627698de92887c1
Log:
Fixed bug #69756 (Fatal error: Nesting level too deep - recursive dependency? with ===)
Bugs:
https://bugs.php.net/69756
Changed paths:
A Zend/bug69756.phpt
M Zend/zend_hash.c
Diff:
diff --git a/Zend/bug69756.phpt b/Zend/bug69756.phpt
new file mode 100644
index 0000000..ca638fb
--- /dev/null
+++ b/Zend/bug69756.phpt
@@ -0,0 +1,12 @@
+--TEST--
+Fixed bug #69756 (Fatal error: Nesting level too deep - recursive dependency? with ===).
+--FILE--
+<?php
+$arr = range(1, 2);
+foreach($arr as &$item ) {
+ var_dump($arr === array(1, 2));
+}
+?>
+--EXPECT--
+bool(true)
+bool(true)
diff --git a/Zend/zend_hash.c b/Zend/zend_hash.c
index bb0a2ff..b8d3b1f 100644
--- a/Zend/zend_hash.c
+++ b/Zend/zend_hash.c
@@ -71,7 +71,7 @@ static void _zend_is_inconsistent(const HashTable *ht, const char *file, int lin
#define HASH_PROTECT_RECURSION(ht) \
if ((ht)->u.flags & HASH_FLAG_APPLY_PROTECTION) { \
- if ((ht)->u.flags >= (3 << 8)) { \
+ if (((ht)->u.flags & 0xff00) >= (3 << 8)) { \
zend_error_noreturn(E_ERROR, "Nesting level too deep - recursive dependency?");\
} \
ZEND_HASH_INC_APPLY_COUNT(ht); \