summaryrefslogtreecommitdiff
path: root/ext/soap/php_encoding.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@php.net>2004-02-02 17:39:10 +0000
committerDmitry Stogov <dmitry@php.net>2004-02-02 17:39:10 +0000
commita70a620a01897579ab7d28418532a55dcfb6c459 (patch)
tree48fa928dd6b00c1be678cc78f328960335bcf19d /ext/soap/php_encoding.c
parent862bf61de9a2f788899207a66794de65758b770f (diff)
downloadphp-git-a70a620a01897579ab7d28418532a55dcfb6c459.tar.gz
fix: proper handling of SOAP 1.1 href and unresolved attributes references
Diffstat (limited to 'ext/soap/php_encoding.c')
-rw-r--r--ext/soap/php_encoding.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/ext/soap/php_encoding.c b/ext/soap/php_encoding.c
index 2e9eb23b06..12d0ca0395 100644
--- a/ext/soap/php_encoding.c
+++ b/ext/soap/php_encoding.c
@@ -2304,7 +2304,14 @@ xmlNodePtr sdl_guess_convert_xml(encodeTypePtr enc, zval *data, int style, xmlNo
static xmlNodePtr check_and_resolve_href(xmlNodePtr data)
{
if (data && data->properties) {
- xmlAttrPtr href = get_attribute(data->properties, "href");
+ xmlAttrPtr href;
+
+ href = data->properties;
+ while (1) {
+ href = get_attribute(href, "href");
+ if (href == NULL || href->ns == NULL) {break;}
+ href = href->next;
+ }
if (href) {
/* Internal href try and find node */
if (href->children->content[0] == '#') {