Sophie

Sophie

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

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

From a3480123cf3f0555a78e65ce21357e8ec6e73be2 Mon Sep 17 00:00:00 2001
From: Nick Wellnhofer <wellnhofer@aevum.de>
Date: Mon, 8 Nov 2010 10:42:33 +0100
Subject: [PATCH] Fix direct pattern matching bug
To: libvir-list@redhat.com

and adds a test case for the problem,
also adding a .gitignore cleanup

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

diff --git a/libxslt/pattern.c b/libxslt/pattern.c
index b7c2391..ef2be01 100644
--- a/libxslt/pattern.c
+++ b/libxslt/pattern.c
@@ -485,13 +485,15 @@ xsltTestCompMatchDirect(xsltTransformContextPtr ctxt, xsltCompMatchPtr comp,
 	xmlNodePtr parent = node->parent;
 	xmlDocPtr olddoc;
 	xmlNodePtr oldnode;
-	int oldNsNr;
+	int oldNsNr, oldContextSize, oldProximityPosition;
 	xmlNsPtr *oldNamespaces;
 
 	oldnode = ctxt->xpathCtxt->node;
 	olddoc = ctxt->xpathCtxt->doc;
 	oldNsNr = ctxt->xpathCtxt->nsNr;
 	oldNamespaces = ctxt->xpathCtxt->namespaces;
+	oldContextSize = ctxt->xpathCtxt->contextSize;
+	oldProximityPosition = ctxt->xpathCtxt->proximityPosition;
 	ctxt->xpathCtxt->node = node;
 	ctxt->xpathCtxt->doc = doc;
 	ctxt->xpathCtxt->namespaces = nsList;
@@ -501,6 +503,8 @@ xsltTestCompMatchDirect(xsltTransformContextPtr ctxt, xsltCompMatchPtr comp,
 	ctxt->xpathCtxt->doc = olddoc;
 	ctxt->xpathCtxt->namespaces = oldNamespaces;
 	ctxt->xpathCtxt->nsNr = oldNsNr;
+	ctxt->xpathCtxt->contextSize = oldContextSize;
+	ctxt->xpathCtxt->proximityPosition = oldProximityPosition;
 	if (newlist == NULL)
 	    return(-1);
 	if (newlist->type != XPATH_NODESET) {
-- 
1.7.11.4