From: Dmitry Stogov Date: Mon, 23 Oct 2006 06:49:49 +0000 (+0000) Subject: Fixed decoding list of arrays (related to bug #39121) X-Git-Tag: RELEASE_1_0_0RC1~1221 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a0407cf588c5a8a302ae01d6d2bd2bdc2342ebad;p=php Fixed decoding list of arrays (related to bug #39121) --- diff --git a/ext/soap/php_encoding.c b/ext/soap/php_encoding.c index d5c2ee6840..84c4aabd39 100644 --- a/ext/soap/php_encoding.c +++ b/ext/soap/php_encoding.c @@ -1346,7 +1346,16 @@ static zval *to_zval_object_ex(encodeTypePtr type, xmlNodePtr data, zend_class_e prop = get_zval_property(ret, (char*)trav->name TSRMLS_CC); if (!prop) { - set_zval_property(ret, (char*)trav->name, tmpVal TSRMLS_CC); + if (!trav->next || !get_node(trav->next, (char*)trav->name)) { + set_zval_property(ret, (char*)trav->name, tmpVal TSRMLS_CC); + } else { + zval *arr; + + MAKE_STD_ZVAL(arr); + array_init(arr); + add_next_index_zval(arr, tmpVal); + set_zval_property(ret, (char*)trav->name, arr TSRMLS_CC); + } } else { /* Property already exist - make array */ if (Z_TYPE_P(prop) != IS_ARRAY) {