summaryrefslogtreecommitdiff
path: root/ext/soap/php_encoding.c
diff options
context:
space:
mode:
authorNikita Popov <nikic@php.net>2016-08-30 18:06:18 +0200
committerNikita Popov <nikic@php.net>2016-08-30 18:06:18 +0200
commit3317287ce125a33eb9d35501e59ad8330215f100 (patch)
tree4a5737b0b55c20238b71ddc286756b1b36327271 /ext/soap/php_encoding.c
parent8e487aefaaf88bdad6343da06286bfc86063836c (diff)
downloadphp-git-3317287ce125a33eb9d35501e59ad8330215f100.tar.gz
Fix bug #71711
Also handle another case of bug #71996.
Diffstat (limited to 'ext/soap/php_encoding.c')
-rw-r--r--ext/soap/php_encoding.c4
1 files changed, 2 insertions, 2 deletions
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();