From: Kristina Hanicova Date: Wed, 17 Mar 2021 16:43:19 +0000 (+0100) Subject: virxml: Fix possible memory leak in virXMLNodeContentString() X-Git-Tag: v7.2.0-rc1~87 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=aaa98e3cfac4dd1c9af9f831b1cbd99c5ac83cd0;p=thirdparty%2Flibvirt.git 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 --- 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"),