util: log an error if virXMLNodeContentString will return NULL

Many of our calls to xmlNodeGetContent() (which are now all via
virXMLNodeContentString() are failing to check for a NULL return. We
need to remedy that, but in order to make the remedy simpler, let's
log an error in virXMLNodeContentString(), so that the callers don't
all individually need to (since it would be the same error message for
all of them anyway).

Signed-off-by: Laine Stump <laine@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
Laine Stump 2020-07-14 00:21:28 -04:00
parent c42e161000
commit cb373a0068

View File

@ -538,7 +538,23 @@ virXMLPropStringLimit(xmlNodePtr node,
char *
virXMLNodeContentString(xmlNodePtr node)
{
return (char *)xmlNodeGetContent(node);
char *ret = (char *)xmlNodeGetContent(node);
if (node->type != XML_ELEMENT_NODE) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("node '%s' has unexpected type %d"),
node->name, node->type);
return NULL;
}
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"),
node->name);
return NULL;
}
return ret;
}