diff options
author | Nick Wellnhofer <wellnhofer@aevum.de> | 2023-03-16 17:08:17 +0100 |
---|---|---|
committer | Nick Wellnhofer <wellnhofer@aevum.de> | 2023-03-16 17:08:17 +0100 |
commit | 7c8b2db575f53766d1ba41b45fd6764c6546d849 (patch) | |
tree | 9211224925ba40e1919badd36c59ec6c1596e00e | |
parent | 610206386b0d2fcae0b53229525fb325af1219d2 (diff) | |
download | libxslt-7c8b2db575f53766d1ba41b45fd6764c6546d849.tar.gz |
malloc-fail: Fix memory leak in xsltCompileStepPattern
Found by OSS-Fuzz, see #84.
-rw-r--r-- | libxslt/pattern.c | 4 |
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); } /** |