Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > media > main-src > by-pkgid > d41e7febba7533a5711c18660c676cc9 > files > 9

libxslt-1.1.17-4.el5_8.3.src.rpm

From cb6da103358adfad1e8a181ab01d027c7abcb9e2 Mon Sep 17 00:00:00 2001
From: Daniel Veillard <veillard@redhat.com>
Date: Wed, 8 Aug 2012 15:31:05 +0800
Subject: [PATCH] Fix default template processing on namespace nodes
To: libvir-list@redhat.com

For https://bugzilla.redhat.com/show_bug.cgi?id=852935
CVE-2012-2871

Conflicts:
	libxslt/transform.c: small context problem

Signed-off-by: Daniel Veillard <veillard@redhat.com>
---
 libxslt/transform.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/libxslt/transform.c b/libxslt/transform.c
index ed4d4db..ce4b386 100644
--- a/libxslt/transform.c
+++ b/libxslt/transform.c
@@ -4339,7 +4339,12 @@ xsltApplyTemplates(xsltTransformContextPtr ctxt, xmlNodePtr node,
 	 * Build an XPath nodelist with the children
 	 */
 	list = xmlXPathNodeSetCreate(NULL);
-	cur = node->children;
+	if (list == NULL)
+	    goto error;
+	if (node->type != XML_NAMESPACE_DECL)
+	    cur = node->children;
+	else
+	    cur = NULL;
 	while (cur != NULL) {
 	    switch (cur->type) {
 		case XML_TEXT_NODE:
@@ -4388,6 +4393,8 @@ xsltApplyTemplates(xsltTransformContextPtr ctxt, xmlNodePtr node,
 		    if (cur->prev != NULL)
 			cur->prev->next = cur->next;
 		    break;
+		case XML_NAMESPACE_DECL:
+		    break;
 		default:
 #ifdef WITH_XSLT_DEBUG_PROCESS
 		    XSLT_TRACE(ctxt,XSLT_TRACE_APPLY_TEMPLATES,xsltGenericDebug(xsltGenericDebugContext,
-- 
1.7.11.4