From 015a5655dfd85e066584f1a7ee9f9aa43e84ba3b Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Sun, 25 Feb 2007 13:19:29 +0000 Subject: Fixed bug #40609 (Segfaults when using more than one SoapVar in a request). (Rob, Dmitry) --- ext/soap/php_encoding.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'ext/soap/php_encoding.c') 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; } -- cgit v1.2.1