diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 0ab69a936623e7dc8287887d4a1037d41ef0f7d4..5fec2e522088ea177a7ec78a45012c6ae85b4a62 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -16508,20 +16508,19 @@ virDomainDiskDefParse(const char *xmlStr, virDomainXMLOptionPtr xmlopt, unsigned int flags) { - xmlDocPtr xml; - xmlXPathContextPtr ctxt = NULL; - virDomainDiskDefPtr disk = NULL; + VIR_AUTOPTR(xmlDoc) xml = NULL; + VIR_AUTOPTR(xmlXPathContext) ctxt = NULL; virSecurityLabelDefPtr *seclabels = NULL; size_t nseclabels = 0; if (!(xml = virXMLParseStringCtxt(xmlStr, _("(disk_definition)"), &ctxt))) - goto cleanup; + return NULL; if (!virXMLNodeNameEqual(ctxt->node, "disk")) { virReportError(VIR_ERR_XML_ERROR, _("expecting root element of 'disk', not '%s'"), ctxt->node->name); - goto cleanup; + return NULL; } if (def) { @@ -16529,13 +16528,8 @@ virDomainDiskDefParse(const char *xmlStr, nseclabels = def->nseclabels; } - disk = virDomainDiskDefParseXML(xmlopt, ctxt->node, ctxt, + return virDomainDiskDefParseXML(xmlopt, ctxt->node, ctxt, seclabels, nseclabels, flags); - - cleanup: - xmlFreeDoc(xml); - xmlXPathFreeContext(ctxt); - return disk; } diff --git a/src/conf/storage_conf.c b/src/conf/storage_conf.c index f6de3687abca38dfa58eb3455b9e27d82ad796cf..fcd1701d377a13af10f5d4b5d58b7e4d6dc5eced 100644 --- a/src/conf/storage_conf.c +++ b/src/conf/storage_conf.c @@ -695,36 +695,30 @@ virStoragePoolSourcePtr virStoragePoolDefParseSourceString(const char *srcSpec, int pool_type) { - xmlDocPtr doc = NULL; + VIR_AUTOPTR(xmlDoc) doc = NULL; xmlNodePtr node = NULL; - xmlXPathContextPtr xpath_ctxt = NULL; - virStoragePoolSourcePtr ret = NULL; + VIR_AUTOPTR(xmlXPathContext) xpath_ctxt = NULL; VIR_AUTOPTR(virStoragePoolSource) def = NULL; if (!(doc = virXMLParseStringCtxt(srcSpec, _("(storage_source_specification)"), &xpath_ctxt))) - goto cleanup; + return NULL; if (VIR_ALLOC(def) < 0) - goto cleanup; + return NULL; if (!(node = virXPathNode("/source", xpath_ctxt))) { virReportError(VIR_ERR_XML_ERROR, "%s", _("root element was not source")); - goto cleanup; + return NULL; } if (virStoragePoolDefParseSource(xpath_ctxt, def, pool_type, node) < 0) - goto cleanup; - - VIR_STEAL_PTR(ret, def); - cleanup: - xmlFreeDoc(doc); - xmlXPathFreeContext(xpath_ctxt); + return NULL; - return ret; + VIR_RETURN_PTR(def); }