diff options
author | Dmitry Stogov <dmitry@php.net> | 2007-02-25 13:19:29 +0000 |
---|---|---|
committer | Dmitry Stogov <dmitry@php.net> | 2007-02-25 13:19:29 +0000 |
commit | 015a5655dfd85e066584f1a7ee9f9aa43e84ba3b (patch) | |
tree | 494362290d1515d608d0a8f9c4e2471c6dbfd29d /ext/soap/php_encoding.c | |
parent | 255c6a71d7d5abf4671f966d2e2a56aae5fbb7b2 (diff) | |
download | php-git-015a5655dfd85e066584f1a7ee9f9aa43e84ba3b.tar.gz |
Fixed bug #40609 (Segfaults when using more than one SoapVar in a request). (Rob, Dmitry)
Diffstat (limited to 'ext/soap/php_encoding.c')
-rw-r--r-- | ext/soap/php_encoding.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/ext/soap/php_encoding.c b/ext/soap/php_encoding.c index f86b9d6045..53b7fa1f3f 100644 --- a/ext/soap/php_encoding.c +++ b/ext/soap/php_encoding.c @@ -2888,8 +2888,18 @@ static xmlNodePtr to_xml_any(encodeTypePtr type, zval *data, int style, xmlNodeP ret = xmlNewTextLen(BAD_CAST(Z_STRVAL(tmp)), Z_STRLEN(tmp)); zval_dtor(&tmp); } + ret->name = xmlStringTextNoenc; - xmlAddChild(parent, ret); + ret->parent = parent; + ret->doc = parent->doc; + ret->prev = parent->last; + ret->next = NULL; + if (parent->last) { + parent->last->next = ret; + } else { + parent->children = ret; + } + parent->last = ret; return ret; } |