From 3317287ce125a33eb9d35501e59ad8330215f100 Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Tue, 30 Aug 2016 18:06:18 +0200 Subject: Fix bug #71711 Also handle another case of bug #71996. --- ext/soap/php_encoding.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'ext/soap/php_encoding.c') diff --git a/ext/soap/php_encoding.c b/ext/soap/php_encoding.c index 9c9e4e9e56..10d59ad576 100644 --- a/ext/soap/php_encoding.c +++ b/ext/soap/php_encoding.c @@ -1963,7 +1963,7 @@ static xmlNodePtr to_xml_object(encodeTypePtr type, zval *data, int style, xmlNo xmlNodePtr property; ZEND_HASH_FOREACH_STR_KEY_VAL_IND(prop, str_key, zprop) { - + ZVAL_DEREF(zprop); property = master_to_xml(get_conversion(Z_TYPE_P(zprop)), zprop, style, xmlParam); if (str_key) { @@ -2684,7 +2684,6 @@ static xmlNodePtr to_xml_map(encodeTypePtr type, zval *data, int style, xmlNodeP if (Z_TYPE_P(data) == IS_ARRAY) { ZEND_HASH_FOREACH_KEY_VAL_IND(Z_ARRVAL_P(data), int_val, key_val, temp_data) { - item = xmlNewNode(NULL, BAD_CAST("item")); xmlAddChild(xmlParam, item); key = xmlNewNode(NULL, BAD_CAST("key")); @@ -2707,6 +2706,7 @@ static xmlNodePtr to_xml_map(encodeTypePtr type, zval *data, int style, xmlNodeP smart_str_free(&tmp); } + ZVAL_DEREF(temp_data); xparam = master_to_xml(get_conversion(Z_TYPE_P(temp_data)), temp_data, style, item); xmlNodeSetName(xparam, BAD_CAST("value")); } ZEND_HASH_FOREACH_END(); -- cgit v1.2.1