aboutsummaryrefslogtreecommitdiffstats
path: root/parser.c
diff options
context:
space:
mode:
authorDaniel Veillard <veillard@redhat.com>2014-03-21 17:05:51 +0800
committerDaniel Veillard <veillard@redhat.com>2014-03-21 17:05:51 +0800
commit6faa126fc3ba24a782e832cb0000d6d4f6b7b576 (patch)
treebaa7fc29b0a4289226b488e7f5b66a792c8ed48c /parser.c
parent085b997cfd0cd19481d9eecab22da5adf67bcbdc (diff)
downloadandroid_external_libxml2-6faa126fc3ba24a782e832cb0000d6d4f6b7b576.tar.gz
android_external_libxml2-6faa126fc3ba24a782e832cb0000d6d4f6b7b576.tar.bz2
android_external_libxml2-6faa126fc3ba24a782e832cb0000d6d4f6b7b576.zip
Fix xmlParseInNodeContext() if node is not element
We really need to have ctxt->instate == XML_PARSER_CONTENT when jumping in content parsing Bug reported by Frank Gross
Diffstat (limited to 'parser.c')
-rw-r--r--parser.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/parser.c b/parser.c
index 0bf1aa2e..9347ac98 100644
--- a/parser.c
+++ b/parser.c
@@ -13629,6 +13629,8 @@ xmlParseInNodeContext(xmlNodePtr node, const char *data, int datalen,
xmlCtxtUseOptionsInternal(ctxt, options, NULL);
xmlDetectSAX2(ctxt);
ctxt->myDoc = doc;
+ /* parsing in context, i.e. as within existing content */
+ ctxt->instate = XML_PARSER_CONTENT;
fake = xmlNewComment(NULL);
if (fake == NULL) {
@@ -13664,7 +13666,6 @@ xmlParseInNodeContext(xmlNodePtr node, const char *data, int datalen,
}
cur = cur->parent;
}
- ctxt->instate = XML_PARSER_CONTENT;
}
if ((ctxt->validate) || (ctxt->replaceEntities != 0)) {