diff options
Diffstat (limited to 'ext/soap/php_xml.c')
-rw-r--r-- | ext/soap/php_xml.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/ext/soap/php_xml.c b/ext/soap/php_xml.c index d609ea4d1a..ce560b6f35 100644 --- a/ext/soap/php_xml.c +++ b/ext/soap/php_xml.c @@ -158,9 +158,15 @@ xmlNodePtr check_and_resolve_href(xmlNodePtr data) if (href) { /* Internal href try and find node */ if (href->children->content[0] == '#') { - return get_node_with_attribute_recursive(data->doc->children, NULL, "id", &href->children->content[1]); + xmlNodePtr ret = get_node_with_attribute_recursive(data->doc->children, NULL, "id", &href->children->content[1]); + if (!ret) { + php_error(E_ERROR,"Unresolved reference '%s'",href->children->content); + } + data = ret; + } else { + /* TODO: External href....? */ + php_error(E_ERROR,"External reference '%s'",href->children->content); } - /* TODO: External href....? */ } } return data; |