From ae6fa0521c34449b54f9cb3257a4df9b79f3212f Mon Sep 17 00:00:00 2001 From: Nick Wellnhofer Date: Wed, 2 Nov 2022 16:13:27 +0100 Subject: [PATCH 11/28] malloc-fail: Fix use-after-free in xmlXIncludeAddNode Found with libFuzzer, see #344. Reference: https://github.com/GNOME/libxml2/commit/5a19e21605398cef6a8b1452477a8705cb41562b Conflict: xinclude.c: --- xinclude.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/xinclude.c b/xinclude.c index cd1e1b1..e5e3b16 100644 --- a/xinclude.c +++ b/xinclude.c @@ -612,14 +612,15 @@ xmlXIncludeAddNode(xmlXIncludeCtxtPtr ctxt, xmlNodePtr cur) { } URL = xmlSaveUri(uri); xmlFreeURI(uri); - xmlFree(URI); if (URL == NULL) { xmlXIncludeErr(ctxt, cur, XML_XINCLUDE_HREF_URI, "invalid value URI %s\n", URI); if (fragment != NULL) xmlFree(fragment); + xmlFree(URI); return(-1); } + xmlFree(URI); if (xmlStrEqual(URL, ctxt->doc->URL)) local = 1; -- 2.27.0