summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXinchen Hui <laruence@gmail.com>2016-04-08 17:57:51 +0800
committerXinchen Hui <laruence@gmail.com>2016-04-08 17:57:51 +0800
commitc45f7b97a3252767b31d38fd7e761b9291ed2152 (patch)
tree0760c36087a09e3fe11fb9e4cf83ab582c6db8cd
parent94e889299bbbb2f174dc7b465eced85f7c0d70f7 (diff)
downloadphp-git-c45f7b97a3252767b31d38fd7e761b9291ed2152.tar.gz
Fixed bug #71986 (Nested foreach assign-by-reference creates broken variables)
-rw-r--r--NEWS4
-rw-r--r--ext/soap/php_encoding.c1
2 files changed, 5 insertions, 0 deletions
diff --git a/NEWS b/NEWS
index 81214094d7..cccbc56f9e 100644
--- a/NEWS
+++ b/NEWS
@@ -68,6 +68,10 @@ PHP NEWS
. Fixed bug #71820 (pg_fetch_object binds parameters before call
constructor). (Anatol)
+- SOAP:
+ . Fixed bug #71986 (Nested foreach assign-by-reference creates broken
+ variables). (Laruence)
+
- SPL:
. Fixed bug #71838 (Deserializing serialized SPLObjectStorage-Object can't
access properties in PHP). (Nikita)
diff --git a/ext/soap/php_encoding.c b/ext/soap/php_encoding.c
index 1fdc5a8788..fc389f2365 100644
--- a/ext/soap/php_encoding.c
+++ b/ext/soap/php_encoding.c
@@ -3512,6 +3512,7 @@ static encodePtr get_array_type(xmlNodePtr node, zval *array, smart_str *type)
ht = Z_ARRVAL_P(array);
ZEND_HASH_FOREACH_VAL_IND(ht, tmp) {
+ ZVAL_DEREF(tmp);
if (Z_TYPE_P(tmp) == IS_OBJECT &&
Z_OBJCE_P(tmp) == soap_var_class_entry) {
zval *ztype;