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 <khani...@redhat.com> --- 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.29.2