summaryrefslogtreecommitdiff
path: root/ext/soap/php_encoding.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@php.net>2007-02-25 13:19:29 +0000
committerDmitry Stogov <dmitry@php.net>2007-02-25 13:19:29 +0000
commit015a5655dfd85e066584f1a7ee9f9aa43e84ba3b (patch)
tree494362290d1515d608d0a8f9c4e2471c6dbfd29d /ext/soap/php_encoding.c
parent255c6a71d7d5abf4671f966d2e2a56aae5fbb7b2 (diff)
downloadphp-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.c12
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;
}