diff options
author | Nikita Popov <nikic@php.net> | 2016-10-12 23:15:36 +0200 |
---|---|---|
committer | Nikita Popov <nikic@php.net> | 2016-10-12 23:15:48 +0200 |
commit | 8e46066a27d79fd88231bbf31dfae222d940367e (patch) | |
tree | 7502b20d2774747c506b3469061ec165f82342eb /ext/soap/php_encoding.c | |
parent | bec0121733cc5777c4d3fde8e9ff56fe68c039d3 (diff) | |
parent | 26287132c0c48e52dbaf1ac44c1d2f0d0d9b0cf7 (diff) | |
download | php-git-8e46066a27d79fd88231bbf31dfae222d940367e.tar.gz |
Merge branch 'PHP-7.0' into PHP-7.1
Diffstat (limited to 'ext/soap/php_encoding.c')
-rw-r--r-- | ext/soap/php_encoding.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/ext/soap/php_encoding.c b/ext/soap/php_encoding.c index a8f28fbf1e..c0e22d741b 100644 --- a/ext/soap/php_encoding.c +++ b/ext/soap/php_encoding.c @@ -1225,7 +1225,7 @@ static void unset_zval_property(zval* object, char* name) static void model_to_zval_any(zval *ret, xmlNodePtr node) { - zval rv, arr, val; + zval rv, arr, val, keepVal; zval* any = NULL; char* name = NULL; @@ -1254,6 +1254,7 @@ static void model_to_zval_any(zval *ret, xmlNodePtr node) ZVAL_NULL(&val2); master_to_zval(&val2, get_conversion(XSD_ANYXML), node->next); if (Z_TYPE(val2) != IS_STRING || *Z_STRVAL(val) != '<') { + Z_TRY_DELREF(val2); break; } concat_function(&val, &val, &val2); @@ -1272,7 +1273,8 @@ static void model_to_zval_any(zval *ret, xmlNodePtr node) any = &arr; name = NULL; } else { - any = &val; + ZVAL_COPY_VALUE(&keepVal, &val); + any = &keepVal; } } else { /* Add array element */ |