summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Wellnhofer <wellnhofer@aevum.de>2023-03-16 17:08:17 +0100
committerNick Wellnhofer <wellnhofer@aevum.de>2023-03-16 17:08:17 +0100
commit7c8b2db575f53766d1ba41b45fd6764c6546d849 (patch)
tree9211224925ba40e1919badd36c59ec6c1596e00e
parent610206386b0d2fcae0b53229525fb325af1219d2 (diff)
downloadlibxslt-7c8b2db575f53766d1ba41b45fd6764c6546d849.tar.gz
malloc-fail: Fix memory leak in xsltCompileStepPattern
Found by OSS-Fuzz, see #84.
-rw-r--r--libxslt/pattern.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/libxslt/pattern.c b/libxslt/pattern.c
index 00298392..1702f334 100644
--- a/libxslt/pattern.c
+++ b/libxslt/pattern.c
@@ -1504,6 +1504,7 @@ xsltCompileStepPattern(xsltParserContextPtr ctxt, xmlChar *token, int novar) {
xmlChar *name = NULL;
const xmlChar *URI = NULL;
xmlChar *URL = NULL;
+ xmlChar *ret = NULL;
int level;
xsltAxis axis = 0;
@@ -1643,7 +1644,6 @@ parse_predicate:
level = 0;
while (CUR == '[') {
const xmlChar *q;
- xmlChar *ret = NULL;
level++;
NEXT;
@@ -1687,6 +1687,8 @@ error:
xmlFree(token);
if (name != NULL)
xmlFree(name);
+ if (ret != NULL)
+ xmlFree(ret);
}
/**