components/libxml2/patches/08.CVE-2010-4494.patch
author pavel heimlich<Pavel.Heimlich@Oracle.COM>
Fri, 09 Nov 2012 03:55:37 -0800
branchs11-update
changeset 2421 b8903076d1c2
parent 284 ca417a821aee
permissions -rw-r--r--
15806575 SUNBT7187386-12.0 deliver translatable content in separate package/publisher

--- libxml2-2.7.6/xpath.c.orig	Mon Jun  6 11:10:14 2011
+++ libxml2-2.7.6/xpath.c	Mon Jun  6 11:11:04 2011
@@ -11739,11 +11739,16 @@
 
 	    if ((ctxt->error != XPATH_EXPRESSION_OK) || (res == -1)) {
 	        xmlXPathObjectPtr tmp;
-		/* pop the result */
+		/* pop the result if any */
 		tmp = valuePop(ctxt);
-		xmlXPathReleaseObject(xpctxt, tmp);
-		/* then pop off contextObj, which will be freed later */
-		valuePop(ctxt);
+		if (tmp != contextObj) {
+		   /*
+		    * Free up the result
+		    * then pop off contextObj, which will be freed later
+		    */
+		   xmlXPathReleaseObject(xpctxt, tmp);
+		   valuePop(ctxt);
+		}
 		goto evaluation_error;
 	    }