From 729601f15772c19778062b98bd0716d8f5c2af3b Mon Sep 17 00:00:00 2001 From: Martin Date: Mon, 12 Oct 2009 22:42:26 +0200 Subject: Fix memory leak in xmlXPathEvalExpression() * xpath.c: plug some leaks when parsing misformed XPath expressions * python/tests/xpathleak.py: expand the regression tests for those --- python/tests/xpathleak.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'python/tests') diff --git a/python/tests/xpathleak.py b/python/tests/xpathleak.py index dcc144c1..39f49e32 100644 --- a/python/tests/xpathleak.py +++ b/python/tests/xpathleak.py @@ -15,6 +15,14 @@ expect="""--> Invalid expression --> xmlXPathEval: evaluation failed --> Invalid expression --> xmlXPathEval: evaluation failed +--> Invalid expression +--> xmlXPathEval: evaluation failed +--> Invalid expression +--> xmlXPathEval: evaluation failed +--> Invalid expression +--> xmlXPathEval: evaluation failed +--> Invalid expression +--> xmlXPathEval: evaluation failed """ err="" def callback(ctx, str): @@ -27,7 +35,11 @@ libxml2.registerErrorHandler(callback, "-->") doc = libxml2.parseDoc("") ctxt = doc.xpathNewContext() ctxt.setContextNode(doc) -for expr in (":false()","bad:()","bad(:)",":bad(:)","bad:(:)","bad:bad(:)"): +badexprs = ( + ":false()", "bad:()", "bad(:)", ":bad(:)", "bad:(:)", "bad:bad(:)", + "a:/b", "/c:/d", "//e:/f", "g://h" + ) +for expr in badexprs: try: ctxt.xpathEval(expr) except libxml2.xpathError, e: -- cgit v1.2.1