summaryrefslogtreecommitdiff
path: root/tree.c
diff options
context:
space:
mode:
authorDaniel Veillard <veillard@src.gnome.org>2003-10-28 14:27:41 +0000
committerDaniel Veillard <veillard@src.gnome.org>2003-10-28 14:27:41 +0000
commitf4e562980917086caf3f7a8217ac9f72ebf3ccb4 (patch)
treed07406a6247cb3a3c5cf0092f0279c609f4d3ac3 /tree.c
parentf5cb3cd9e987c70affa582cfe6c5f61eec90e727 (diff)
downloadlibxml2-f4e562980917086caf3f7a8217ac9f72ebf3ccb4.tar.gz
applied patch from Kasimier Buchcik which fixes a problem in xmlSearchNs
* tree.c: applied patch from Kasimier Buchcik which fixes a problem in xmlSearchNs introduced in 2.6.0 Damniel
Diffstat (limited to 'tree.c')
-rw-r--r--tree.c40
1 files changed, 23 insertions, 17 deletions
diff --git a/tree.c b/tree.c
index 5847f5cb..e9d50e76 100644
--- a/tree.c
+++ b/tree.c
@@ -5292,7 +5292,9 @@ xmlGetNsList(xmlDocPtr doc ATTRIBUTE_UNUSED, xmlNodePtr node)
*/
xmlNsPtr
xmlSearchNs(xmlDocPtr doc, xmlNodePtr node, const xmlChar *nameSpace) {
+
xmlNsPtr cur;
+ xmlNodePtr orig = node;
if (node == NULL) return(NULL);
if ((nameSpace != NULL) &&
@@ -5350,16 +5352,18 @@ xmlSearchNs(xmlDocPtr doc, xmlNodePtr node, const xmlChar *nameSpace) {
return(cur);
cur = cur->next;
}
- cur = node->ns;
- if (cur != NULL) {
- if ((cur->prefix == NULL) && (nameSpace == NULL) &&
- (cur->href != NULL))
- return(cur);
- if ((cur->prefix != NULL) && (nameSpace != NULL) &&
- (cur->href != NULL) &&
- (xmlStrEqual(cur->prefix, nameSpace)))
- return(cur);
- }
+ if (orig != node) {
+ cur = node->ns;
+ if (cur != NULL) {
+ if ((cur->prefix == NULL) && (nameSpace == NULL) &&
+ (cur->href != NULL))
+ return(cur);
+ if ((cur->prefix != NULL) && (nameSpace != NULL) &&
+ (cur->href != NULL) &&
+ (xmlStrEqual(cur->prefix, nameSpace)))
+ return(cur);
+ }
+ }
}
node = node->parent;
}
@@ -5482,14 +5486,16 @@ xmlSearchNsByHref(xmlDocPtr doc, xmlNodePtr node, const xmlChar * href)
}
cur = cur->next;
}
- cur = node->ns;
- if (cur != NULL) {
- if ((cur->href != NULL) && (href != NULL) &&
- (xmlStrEqual(cur->href, href))) {
- if (xmlNsInScope(doc, orig, node, cur->href) == 1)
- return (cur);
+ if (orig != node) {
+ cur = node->ns;
+ if (cur != NULL) {
+ if ((cur->href != NULL) && (href != NULL) &&
+ (xmlStrEqual(cur->href, href))) {
+ if (xmlNsInScope(doc, orig, node, cur->href) == 1)
+ return (cur);
+ }
}
- }
+ }
}
node = node->parent;
}