summaryrefslogtreecommitdiff
path: root/ext/soap/php_encoding.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@php.net>2006-07-10 07:21:41 +0000
committerDmitry Stogov <dmitry@php.net>2006-07-10 07:21:41 +0000
commitc389a653f734ec2f0517c25e324740b1606febfe (patch)
tree9ea64165c90c15e5b74b7956fdfa41881e854ee0 /ext/soap/php_encoding.c
parentf66cd50510c7cb66b93b966e2c8068716dea32a0 (diff)
downloadphp-git-c389a653f734ec2f0517c25e324740b1606febfe.tar.gz
Fixed bug #38004 Parameters in SoapServer are decoded twice
Diffstat (limited to 'ext/soap/php_encoding.c')
-rw-r--r--ext/soap/php_encoding.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/ext/soap/php_encoding.c b/ext/soap/php_encoding.c
index a46a62ccf2..8d574c2225 100644
--- a/ext/soap/php_encoding.c
+++ b/ext/soap/php_encoding.c
@@ -1353,11 +1353,12 @@ static zval *to_zval_object_ex(encodeTypePtr type, xmlNodePtr data, zend_class_e
str_val = (*attr)->def;
}
if (str_val) {
+ zval zstr;
xmlNodePtr dummy;
zval *data;
- dummy = xmlNewNode(NULL, "BOGUS");
- xmlNodeSetContent(dummy, str_val);
+ ZVAL_STRING(&zstr, str_val, 0);
+ dummy = master_to_xml(get_conversion(IS_STRING), &zstr, SOAP_LITERAL, NULL);
data = master_to_zval((*attr)->encode, dummy);
xmlFreeNode(dummy);
set_zval_property(ret, (*attr)->name, data TSRMLS_CC);