From aaa98e3cfac4dd1c9af9f831b1cbd99c5ac83cd0 Mon Sep 17 00:00:00 2001 From: Kristina Hanicova Date: Wed, 17 Mar 2021 17:43:19 +0100 Subject: [PATCH] virxml: Fix possible memory leak in virXMLNodeContentString() Previously, if xml node passed to the virXMLNodeContentString() was not of type XML_ELEMENT_NODE, @ret could have caused a memory leak because xmlNodeGetContent() works for other types of nodes as well. Signed-off-by: Kristina Hanicova Reviewed-by: Michal Privoznik --- src/util/virxml.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/util/virxml.c b/src/util/virxml.c index 060b7530fc..4a6fe09468 100644 --- a/src/util/virxml.c +++ b/src/util/virxml.c @@ -536,7 +536,7 @@ virXMLPropStringLimit(xmlNodePtr node, char * virXMLNodeContentString(xmlNodePtr node) { - char *ret = (char *)xmlNodeGetContent(node); + char *ret = NULL; if (node->type != XML_ELEMENT_NODE) { virReportError(VIR_ERR_INTERNAL_ERROR, @@ -545,6 +545,8 @@ virXMLNodeContentString(xmlNodePtr node) return NULL; } + ret = (char *)xmlNodeGetContent(node); + if (!ret) { virReportError(VIR_ERR_INTERNAL_ERROR, _("node '%s' has unexpected NULL content. This could be caused by malformed input, or a memory allocation failure"), -- 2.47.2