[libxml2] 502960 provide namespace stack when parsing entity
- From: Daniel Veillard <veillard src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [libxml2] 502960 provide namespace stack when parsing entity
- Date: Wed, 26 Aug 2009 13:58:43 +0000 (UTC)
commit 74eaec1496a9e6bb3318ea28fec1064aa986373e
Author: Daniel Veillard <veillard redhat com>
Date: Wed Aug 26 15:57:20 2009 +0200
502960 provide namespace stack when parsing entity
* parser.c: copy the entity stack
* SAX2.c: fix the warning message for default entities
SAX2.c | 11 ++++++++---
parser.c | 10 ++++++++++
2 files changed, 18 insertions(+), 3 deletions(-)
---
diff --git a/SAX2.c b/SAX2.c
index e5d6eb5..94b39d4 100644
--- a/SAX2.c
+++ b/SAX2.c
@@ -2283,9 +2283,14 @@ xmlSAX2StartElementNs(void *ctx,
xmlSAX2ErrMemory(ctxt, "xmlSAX2StartElementNs");
return;
}
- xmlNsWarnMsg(ctxt, XML_NS_ERR_UNDEFINED_NAMESPACE,
- "Namespace prefix %s was not found\n",
- prefix, NULL);
+ if (prefix != NULL)
+ xmlNsWarnMsg(ctxt, XML_NS_ERR_UNDEFINED_NAMESPACE,
+ "Namespace prefix %s was not found\n",
+ prefix, NULL);
+ else
+ xmlNsWarnMsg(ctxt, XML_NS_ERR_UNDEFINED_NAMESPACE,
+ "Namespace default prefix was not found\n",
+ NULL, NULL);
}
}
diff --git a/parser.c b/parser.c
index efad2f1..6d92656 100644
--- a/parser.c
+++ b/parser.c
@@ -12618,6 +12618,9 @@ xmlParseBalancedChunkMemoryInternal(xmlParserCtxtPtr oldctxt,
xmlNodePtr last = NULL;
int size;
xmlParserErrors ret = XML_ERR_OK;
+#ifdef SAX2
+ int i;
+#endif
if (((oldctxt->depth > 40) && ((oldctxt->options & XML_PARSE_HUGE) == 0)) ||
(oldctxt->depth > 1024)) {
@@ -12644,6 +12647,13 @@ xmlParseBalancedChunkMemoryInternal(xmlParserCtxtPtr oldctxt,
ctxt->str_xmlns = xmlDictLookup(ctxt->dict, BAD_CAST "xmlns", 5);
ctxt->str_xml_ns = xmlDictLookup(ctxt->dict, XML_XML_NAMESPACE, 36);
+#ifdef SAX2
+ /* propagate namespaces down the entity */
+ for (i = 0;i < oldctxt->nsNr;i += 2) {
+ nsPush(ctxt, oldctxt->nsTab[i], oldctxt->nsTab[i+1]);
+ }
+#endif
+
oldsax = ctxt->sax;
ctxt->sax = oldctxt->sax;
xmlDetectSAX2(ctxt);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]