From 0f4d36e0551cd9261dc7eaddb748e08c7e65f11a Mon Sep 17 00:00:00 2001 From: Nick Wellnhofer Date: Fri, 17 Jan 2025 13:04:35 +0100 Subject: [PATCH] xmllint: Fix memory leak in error case --- xmllint.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/xmllint.c b/xmllint.c index 1dc7e6a28..511b6ed82 100644 --- a/xmllint.c +++ b/xmllint.c @@ -2578,6 +2578,9 @@ parseAndPrintFile(const char *filename, xmlParserCtxtPtr pctxt) { xmlDebugDumpEntities(ERR_STREAM, doc); #endif + /* Avoid unused label warning */ + goto done; + done: /* * free it. @@ -3490,6 +3493,9 @@ xmllintMain(int argc, const char **argv, xmlResourceLoader loader) { usage(ERR_STREAM, argv[0]); progresult = XMLLINT_ERR_UNCLASS; } + +error: + #ifdef LIBXML_SCHEMATRON_ENABLED if (wxschematron != NULL) xmlSchematronFree(wxschematron); @@ -3505,10 +3511,6 @@ xmllintMain(int argc, const char **argv, xmlResourceLoader loader) { xmlFreePattern(patternc); #endif - /* Avoid unused label warning if features are disabled. */ - goto error; - -error: xmlCleanupParser(); return(progresult);