]> granicus.if.org Git - php/commitdiff
Fixed bug #69756 (Fatal error: Nesting level too deep - recursive dependency? with...
authorDmitry Stogov <dmitry@zend.com>
Fri, 5 Jun 2015 07:04:58 +0000 (10:04 +0300)
committerDmitry Stogov <dmitry@zend.com>
Fri, 5 Jun 2015 07:04:58 +0000 (10:04 +0300)
Zend/bug69756.phpt [new file with mode: 0644]
Zend/zend_hash.c

diff --git a/Zend/bug69756.phpt b/Zend/bug69756.phpt
new file mode 100644 (file)
index 0000000..ca638fb
--- /dev/null
@@ -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)
index bb0a2ff24a6e0fd3b5b4627024a7bba0e38517af..b8d3b1f3897d126f1ca0ce07e1bd97b06edbbeef 100644 (file)
@@ -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);                                                                                                  \