| Index: dev-libs/libxml2/files/libxml2-2.7.8-xpath-freeing.patch
|
| diff --git a/dev-libs/libxml2/files/libxml2-2.7.8-xpath-freeing.patch b/dev-libs/libxml2/files/libxml2-2.7.8-xpath-freeing.patch
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..3509a48daf57ddd7f0c3239df6eb83a0a9a3ff63
|
| --- /dev/null
|
| +++ b/dev-libs/libxml2/files/libxml2-2.7.8-xpath-freeing.patch
|
| @@ -0,0 +1,32 @@
|
| +From df83c17e5a2646bd923f75e5e507bc80d73c9722 Mon Sep 17 00:00:00 2001
|
| +From: Daniel Veillard <veillard@redhat.com>
|
| +Date: Wed, 17 Nov 2010 13:12:14 +0000
|
| +Subject: Fix a potential freeing error in XPath
|
| +
|
| +---
|
| +diff --git a/xpath.c b/xpath.c
|
| +index 81e33f6..1447be5 100644
|
| +--- a/xpath.c
|
| ++++ b/xpath.c
|
| +@@ -11763,11 +11763,15 @@ xmlXPathCompOpEvalPositionalPredicate(xmlXPathParserContextPtr ctxt,
|
| +
|
| + 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;
|
| + }
|
| +
|
| +--
|
| +cgit v0.8.3.1
|
|
|