diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 0c883cd834..40b2c57fe5 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -29589,7 +29589,11 @@ virDomainDefFormatInternalSetRootName(virDomainDefPtr def, * Thankfully, libxml maps what looks like globals into * thread-local uses, so we are thread-safe. */ xmlIndentTreeOutput = 1; - xmlbuf = xmlBufferCreate(); + if (!(xmlbuf = xmlBufferCreate())) { + virReportOOMError(); + goto error; + } + if (xmlNodeDump(xmlbuf, def->metadata->doc, def->metadata, virBufferGetIndent(buf) / 2, 1) < 0) { xmlBufferFree(xmlbuf); diff --git a/src/conf/network_conf.c b/src/conf/network_conf.c index 87d43de1e3..5b578f894c 100644 --- a/src/conf/network_conf.c +++ b/src/conf/network_conf.c @@ -2518,7 +2518,11 @@ virNetworkDefFormatBuf(virBufferPtr buf, * Thankfully, libxml maps what looks like globals into * thread-local uses, so we are thread-safe. */ xmlIndentTreeOutput = 1; - xmlbuf = xmlBufferCreate(); + if (!(xmlbuf = xmlBufferCreate())) { + virReportOOMError(); + return -1; + } + if (xmlNodeDump(xmlbuf, def->metadata->doc, def->metadata, virBufferGetIndent(buf) / 2, 1) < 0) { xmlBufferFree(xmlbuf); diff --git a/src/vmx/vmx.c b/src/vmx/vmx.c index f2248cef53..263b57e177 100644 --- a/src/vmx/vmx.c +++ b/src/vmx/vmx.c @@ -697,8 +697,8 @@ virVMXConvertToUTF8(const char *encoding, const char *string) { char *result = NULL; xmlCharEncodingHandlerPtr handler; - xmlBufferPtr input; - xmlBufferPtr utf8; + xmlBufferPtr input = NULL; + xmlBufferPtr utf8 = NULL; handler = xmlFindCharEncodingHandler(encoding); @@ -708,8 +708,11 @@ virVMXConvertToUTF8(const char *encoding, const char *string) return NULL; } - input = xmlBufferCreateStatic((char *)string, strlen(string)); - utf8 = xmlBufferCreate(); + if (!(input = xmlBufferCreateStatic((char *)string, strlen(string))) || + !(utf8 = xmlBufferCreate())) { + virReportOOMError(); + goto cleanup; + } if (xmlCharEncInFunc(handler, utf8, input) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR,