Now that we're using VIR_AUTOFREE there's quite a bit of clean up
possible for now unnecessary goto paths.
Signed-off-by: John Ferlan <jferlan(a)redhat.com>
---
src/conf/domain_conf.c | 801 ++++++++++++++++-------------------------
1 file changed, 310 insertions(+), 491 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 98a35b0296..0a28ee3dd8 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -1101,32 +1101,31 @@ virDomainKeyWrapCipherDefParseXML(virDomainKeyWrapDefPtr keywrap,
{
int state_type;
int name_type;
- int ret = -1;
VIR_AUTOFREE(char *) name = NULL;
VIR_AUTOFREE(char *) state = NULL;
if (!(name = virXMLPropString(node, "name"))) {
virReportError(VIR_ERR_CONF_SYNTAX, "%s",
_("missing name for cipher"));
- goto cleanup;
+ return -1;
}
if ((name_type = virDomainKeyWrapCipherNameTypeFromString(name)) < 0) {
virReportError(VIR_ERR_CONF_SYNTAX,
_("%s is not a supported cipher name"), name);
- goto cleanup;
+ return -1;
}
if (!(state = virXMLPropString(node, "state"))) {
virReportError(VIR_ERR_CONF_SYNTAX,
_("missing state for cipher named %s"), name);
- goto cleanup;
+ return -1;
}
if ((state_type = virTristateSwitchTypeFromString(state)) < 0) {
virReportError(VIR_ERR_CONF_SYNTAX,
_("%s is not a supported cipher state"), state);
- goto cleanup;
+ return -1;
}
switch ((virDomainKeyWrapCipherName) name_type) {
@@ -1137,7 +1136,7 @@ virDomainKeyWrapCipherDefParseXML(virDomainKeyWrapDefPtr keywrap,
"one cipher node with name %s"),
virDomainKeyWrapCipherNameTypeToString(name_type));
- goto cleanup;
+ return -1;
}
keywrap->aes = state_type;
break;
@@ -1149,7 +1148,7 @@ virDomainKeyWrapCipherDefParseXML(virDomainKeyWrapDefPtr keywrap,
"one cipher node with name %s"),
virDomainKeyWrapCipherNameTypeToString(name_type));
- goto cleanup;
+ return -1;
}
keywrap->dea = state_type;
break;
@@ -1158,10 +1157,7 @@ virDomainKeyWrapCipherDefParseXML(virDomainKeyWrapDefPtr keywrap,
break;
}
- ret = 0;
-
- cleanup:
- return ret;
+ return 0;
}
static int
@@ -1264,7 +1260,6 @@ static int
virDomainVirtioOptionsParseXML(xmlNodePtr driver,
virDomainVirtioOptionsPtr *virtio)
{
- int ret = -1;
int val;
virDomainVirtioOptionsPtr res;
VIR_AUTOFREE(char *) str = NULL;
@@ -1281,7 +1276,7 @@ virDomainVirtioOptionsParseXML(xmlNodePtr driver,
if ((val = virTristateSwitchTypeFromString(str)) <= 0) {
virReportError(VIR_ERR_XML_ERROR, "%s",
_("invalid iommu value"));
- goto cleanup;
+ return -1;
}
res->iommu = val;
}
@@ -1291,15 +1286,12 @@ virDomainVirtioOptionsParseXML(xmlNodePtr driver,
if ((val = virTristateSwitchTypeFromString(str)) <= 0) {
virReportError(VIR_ERR_XML_ERROR, "%s",
_("invalid ats value"));
- goto cleanup;
+ return -1;
}
res->ats = val;
}
- ret = 0;
-
- cleanup:
- return ret;
+ return 0;
}
@@ -5333,7 +5325,6 @@ virDomainDefCollectBootOrder(virDomainDefPtr def ATTRIBUTE_UNUSED,
void *data)
{
virHashTablePtr bootHash = data;
- int ret = -1;
VIR_AUTOFREE(char *) order = NULL;
if (info->bootIndex == 0)
@@ -5348,22 +5339,19 @@ virDomainDefCollectBootOrder(virDomainDefPtr def
ATTRIBUTE_UNUSED,
return 0;
}
if (virAsprintf(&order, "%u", info->bootIndex) < 0)
- goto cleanup;
+ return -1;
if (virHashLookup(bootHash, order)) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("boot order '%s' used for more than one
device"),
order);
- goto cleanup;
+ return -1;
}
if (virHashAddEntry(bootHash, order, (void *) 1) < 0)
- goto cleanup;
-
- ret = 0;
+ return -1;
- cleanup:
- return ret;
+ return 0;
}
@@ -6883,7 +6871,6 @@ static int
virDomainDeviceUSBMasterParseXML(xmlNodePtr node,
virDomainDeviceUSBMasterPtr master)
{
- int ret = -1;
VIR_AUTOFREE(char *) startport = NULL;
memset(master, 0, sizeof(*master));
@@ -6894,27 +6881,23 @@ virDomainDeviceUSBMasterParseXML(xmlNodePtr node,
virStrToLong_ui(startport, NULL, 10, &master->startport) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("Cannot parse <master> 'startport'
attribute"));
- goto cleanup;
+ return -1;
}
- ret = 0;
-
- cleanup:
- return ret;
+ return 0;
}
static int
virDomainDeviceBootParseXML(xmlNodePtr node,
virDomainDeviceInfoPtr info)
{
- int ret = -1;
VIR_AUTOFREE(char *) order = NULL;
VIR_AUTOFREE(char *) loadparm = NULL;
if (!(order = virXMLPropString(node, "order"))) {
virReportError(VIR_ERR_INTERNAL_ERROR,
"%s", _("missing boot order attribute"));
- goto cleanup;
+ return -1;
}
if (virStrToLong_uip(order, NULL, 10, &info->bootIndex) < 0 ||
@@ -6922,7 +6905,7 @@ virDomainDeviceBootParseXML(xmlNodePtr node,
virReportError(VIR_ERR_INTERNAL_ERROR,
_("incorrect boot order '%s', expecting positive
integer"),
order);
- goto cleanup;
+ return -1;
}
loadparm = virXMLPropString(node, "loadparm");
@@ -6931,26 +6914,22 @@ virDomainDeviceBootParseXML(xmlNodePtr node,
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Failed to convert loadparm '%s' to upper
case"),
loadparm);
- goto cleanup;
+ return -1;
}
if (!virDomainDeviceLoadparmIsValid(info->loadparm)) {
VIR_FREE(info->loadparm);
- goto cleanup;
+ return -1;
}
}
- ret = 0;
-
- cleanup:
- return ret;
+ return 0;
}
static int
virDomainDeviceISAAddressParseXML(xmlNodePtr node,
virDomainDeviceISAAddressPtr addr)
{
- int ret = -1;
VIR_AUTOFREE(char *) iobase = NULL;
VIR_AUTOFREE(char *) irq = NULL;
@@ -6963,19 +6942,17 @@ virDomainDeviceISAAddressParseXML(xmlNodePtr node,
virStrToLong_uip(iobase, NULL, 16, &addr->iobase) < 0) {
virReportError(VIR_ERR_XML_ERROR, "%s",
_("Cannot parse <address> 'iobase'
attribute"));
- goto cleanup;
+ return -1;
}
if (irq &&
virStrToLong_uip(irq, NULL, 16, &addr->irq) < 0) {
virReportError(VIR_ERR_XML_ERROR, "%s",
_("Cannot parse <address> 'irq'
attribute"));
- goto cleanup;
+ return -1;
}
- ret = 0;
- cleanup:
- return ret;
+ return 0;
}
@@ -6983,7 +6960,6 @@ static int
virDomainDeviceDimmAddressParseXML(xmlNodePtr node,
virDomainDeviceDimmAddressPtr addr)
{
- int ret = -1;
VIR_AUTOFREE(char *) tmp = NULL;
if (!(tmp = virXMLPropString(node, "slot")) ||
@@ -6991,7 +6967,7 @@ virDomainDeviceDimmAddressParseXML(xmlNodePtr node,
virReportError(VIR_ERR_XML_ERROR,
_("invalid or missing dimm slot id '%s'"),
NULLSTR(tmp));
- goto cleanup;
+ return -1;
}
VIR_FREE(tmp);
@@ -6999,14 +6975,11 @@ virDomainDeviceDimmAddressParseXML(xmlNodePtr node,
if (virStrToLong_ullp(tmp, NULL, 16, &addr->base) < 0) {
virReportError(VIR_ERR_XML_ERROR,
_("invalid dimm base address '%s'"), tmp);
- goto cleanup;
+ return -1;
}
}
- ret = 0;
-
- cleanup:
- return ret;
+ return 0;
}
@@ -7014,57 +6987,56 @@ static int
virDomainDeviceAddressParseXML(xmlNodePtr address,
virDomainDeviceInfoPtr info)
{
- int ret = -1;
VIR_AUTOFREE(char *) type = virXMLPropString(address, "type");
if (type) {
if ((info->type = virDomainDeviceAddressTypeFromString(type)) <= 0) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("unknown address type '%s'"), type);
- goto cleanup;
+ return -1;
}
} else {
virReportError(VIR_ERR_INTERNAL_ERROR,
"%s", _("No type specified for device
address"));
- goto cleanup;
+ return -1;
}
switch ((virDomainDeviceAddressType) info->type) {
case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI:
if (virPCIDeviceAddressParseXML(address, &info->addr.pci) < 0)
- goto cleanup;
+ return -1;
break;
case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_DRIVE:
if (virDomainDeviceDriveAddressParseXML(address, &info->addr.drive) <
0)
- goto cleanup;
+ return -1;
break;
case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_SERIAL:
if (virDomainDeviceVirtioSerialAddressParseXML
(address, &info->addr.vioserial) < 0)
- goto cleanup;
+ return -1;
break;
case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_CCID:
if (virDomainDeviceCcidAddressParseXML(address, &info->addr.ccid) < 0)
- goto cleanup;
+ return -1;
break;
case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_USB:
if (virDomainDeviceUSBAddressParseXML(address, &info->addr.usb) < 0)
- goto cleanup;
+ return -1;
break;
case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_SPAPRVIO:
if (virDomainDeviceSpaprVioAddressParseXML(address, &info->addr.spaprvio)
< 0)
- goto cleanup;
+ return -1;
break;
case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_CCW:
if (virDomainDeviceCCWAddressParseXML
(address, &info->addr.ccw) < 0)
- goto cleanup;
+ return -1;
break;
case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_MMIO:
@@ -7072,17 +7044,17 @@ virDomainDeviceAddressParseXML(xmlNodePtr address,
case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_ISA:
if (virDomainDeviceISAAddressParseXML(address, &info->addr.isa) < 0)
- goto cleanup;
+ return -1;
break;
case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_S390:
virReportError(VIR_ERR_XML_ERROR, "%s",
_("virtio-s390 bus doesn't have an address"));
- goto cleanup;
+ return -1;
case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_DIMM:
if (virDomainDeviceDimmAddressParseXML(address, &info->addr.dimm) < 0)
- goto cleanup;
+ return -1;
break;
case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE:
@@ -7090,9 +7062,7 @@ virDomainDeviceAddressParseXML(xmlNodePtr address,
break;
}
- ret = 0;
- cleanup:
- return ret;
+ return 0;
}
@@ -7534,7 +7504,6 @@ static int
virDomainHostdevSubsysSCSIHostDefParseXML(xmlNodePtr sourcenode,
virDomainHostdevSubsysSCSIPtr scsisrc)
{
- int ret = -1;
bool got_address = false, got_adapter = false;
xmlNodePtr cur;
virDomainHostdevSubsysSCSIHostPtr scsihostsrc = &scsisrc->u.host;
@@ -7550,7 +7519,7 @@ virDomainHostdevSubsysSCSIHostDefParseXML(xmlNodePtr sourcenode,
virReportError(VIR_ERR_XML_ERROR, "%s",
_("more than one source addresses is "
"specified for scsi hostdev"));
- goto cleanup;
+ return -1;
}
if (!(bus = virXMLPropString(cur, "bus")) ||
@@ -7559,26 +7528,26 @@ virDomainHostdevSubsysSCSIHostDefParseXML(xmlNodePtr sourcenode,
virReportError(VIR_ERR_XML_ERROR, "%s",
_("'bus', 'target', and
'unit' must be specified "
"for scsi hostdev source address"));
- goto cleanup;
+ return -1;
}
if (virStrToLong_uip(bus, NULL, 0, &scsihostsrc->bus) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("cannot parse bus '%s'"), bus);
- goto cleanup;
+ return -1;
}
if (virStrToLong_uip(target, NULL, 0,
&scsihostsrc->target) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("cannot parse target '%s'"),
target);
- goto cleanup;
+ return -1;
}
if (virStrToLong_ullp(unit, NULL, 0, &scsihostsrc->unit) < 0)
{
virReportError(VIR_ERR_INTERNAL_ERROR,
_("cannot parse unit '%s'"), unit);
- goto cleanup;
+ return -1;
}
got_address = true;
@@ -7587,12 +7556,12 @@ virDomainHostdevSubsysSCSIHostDefParseXML(xmlNodePtr sourcenode,
virReportError(VIR_ERR_XML_ERROR, "%s",
_("more than one adapters is specified "
"for scsi hostdev source"));
- goto cleanup;
+ return -1;
}
if (!(scsihostsrc->adapter = virXMLPropString(cur, "name")))
{
virReportError(VIR_ERR_XML_ERROR, "%s",
_("'adapter' must be specified for scsi
hostdev source"));
- goto cleanup;
+ return -1;
}
got_adapter = true;
@@ -7600,7 +7569,7 @@ virDomainHostdevSubsysSCSIHostDefParseXML(xmlNodePtr sourcenode,
virReportError(VIR_ERR_XML_ERROR,
_("unsupported element '%s' of scsi hostdev
source"),
cur->name);
- goto cleanup;
+ return -1;
}
}
cur = cur->next;
@@ -7610,12 +7579,10 @@ virDomainHostdevSubsysSCSIHostDefParseXML(xmlNodePtr sourcenode,
virReportError(VIR_ERR_XML_ERROR, "%s",
_("'adapter' and 'address' must be specified
for scsi "
"hostdev source"));
- goto cleanup;
+ return -1;
}
- ret = 0;
- cleanup:
- return ret;
+ return 0;
}
static int
@@ -7694,7 +7661,6 @@ virDomainHostdevSubsysSCSIDefParseXML(xmlNodePtr sourcenode,
virDomainHostdevSubsysSCSIPtr scsisrc,
xmlXPathContextPtr ctxt)
{
- int ret = -1;
VIR_AUTOFREE(char *) protocol = NULL;
if ((protocol = virXMLPropString(sourcenode, "protocol"))) {
@@ -7704,17 +7670,14 @@ virDomainHostdevSubsysSCSIDefParseXML(xmlNodePtr sourcenode,
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("Unknown SCSI subsystem protocol '%s'"),
protocol);
- goto cleanup;
+ return -1;
}
}
if (scsisrc->protocol == VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_ISCSI)
- ret = virDomainHostdevSubsysSCSIiSCSIDefParseXML(sourcenode, scsisrc, ctxt);
- else
- ret = virDomainHostdevSubsysSCSIHostDefParseXML(sourcenode, scsisrc);
+ return virDomainHostdevSubsysSCSIiSCSIDefParseXML(sourcenode, scsisrc, ctxt);
- cleanup:
- return ret;
+ return virDomainHostdevSubsysSCSIHostDefParseXML(sourcenode, scsisrc);
}
static int
@@ -7722,14 +7685,13 @@ virDomainHostdevSubsysSCSIVHostDefParseXML(xmlNodePtr sourcenode,
virDomainHostdevDefPtr def)
{
virDomainHostdevSubsysSCSIVHostPtr hostsrc = &def->source.subsys.u.scsi_host;
- int ret = -1;
VIR_AUTOFREE(char *) protocol = NULL;
VIR_AUTOFREE(char *) wwpn = NULL;
if (!(protocol = virXMLPropString(sourcenode, "protocol"))) {
virReportError(VIR_ERR_XML_ERROR, "%s",
_("Missing scsi_host subsystem protocol"));
- return ret;
+ return -1;
}
if ((hostsrc->protocol =
@@ -7737,7 +7699,7 @@ virDomainHostdevSubsysSCSIVHostDefParseXML(xmlNodePtr sourcenode,
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("Unknown scsi_host subsystem protocol '%s'"),
protocol);
- goto cleanup;
+ return -1;
}
switch ((virDomainHostdevSubsysSCSIHostProtocolType) hostsrc->protocol) {
@@ -7745,13 +7707,13 @@ virDomainHostdevSubsysSCSIVHostDefParseXML(xmlNodePtr sourcenode,
if (!(wwpn = virXMLPropString(sourcenode, "wwpn"))) {
virReportError(VIR_ERR_XML_ERROR, "%s",
_("missing vhost-scsi hostdev source wwpn"));
- goto cleanup;
+ return -1;
}
if (!STRPREFIX(wwpn, "naa.") ||
!virValidateWWN(wwpn + 4)) {
virReportError(VIR_ERR_XML_ERROR, "%s", _("malformed
'wwpn' value"));
- goto cleanup;
+ return -1;
}
VIR_STEAL_PTR(hostsrc->wwpn, wwpn);
break;
@@ -7760,20 +7722,17 @@ virDomainHostdevSubsysSCSIVHostDefParseXML(xmlNodePtr sourcenode,
virReportError(VIR_ERR_XML_ERROR,
_("Invalid hostdev protocol '%s'"),
virDomainHostdevSubsysSCSIHostProtocolTypeToString(hostsrc->protocol));
- goto cleanup;
+ return -1;
break;
}
- ret = 0;
- cleanup:
- return ret;
+ return 0;
}
static int
virDomainHostdevSubsysMediatedDevDefParseXML(virDomainHostdevDefPtr def,
xmlXPathContextPtr ctxt)
{
- int ret = -1;
unsigned char uuid[VIR_UUID_BUFLEN] = {0};
xmlNodePtr node = NULL;
virDomainHostdevSubsysMediatedDevPtr mdevsrc = &def->source.subsys.u.mdev;
@@ -7782,26 +7741,24 @@
virDomainHostdevSubsysMediatedDevDefParseXML(virDomainHostdevDefPtr def,
if (!(node = virXPathNode("./source/address", ctxt))) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
_("Missing <address> element"));
- goto cleanup;
+ return -1;
}
if (!(uuidxml = virXMLPropString(node, "uuid"))) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
_("Missing 'uuid' attribute for element
<address>"));
- goto cleanup;
+ return -1;
}
if (virUUIDParse(uuidxml, uuid) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
"%s",
_("Cannot parse uuid attribute of element
<address>"));
- goto cleanup;
+ return -1;
}
virUUIDFormat(uuid, mdevsrc->uuidstr);
- ret = 0;
- cleanup:
- return ret;
+ return 0;
}
static int
@@ -7813,7 +7770,6 @@ virDomainHostdevDefParseXMLSubsys(xmlNodePtr node,
{
xmlNodePtr sourcenode;
int backend;
- int ret = -1;
virDomainHostdevSubsysPCIPtr pcisrc = &def->source.subsys.u.pci;
virDomainHostdevSubsysSCSIPtr scsisrc = &def->source.subsys.u.scsi;
virDomainHostdevSubsysMediatedDevPtr mdevsrc = &def->source.subsys.u.mdev;
@@ -7853,18 +7809,18 @@ virDomainHostdevDefParseXMLSubsys(xmlNodePtr node,
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("unknown host device source address type
'%s'"),
type);
- goto cleanup;
+ return -1;
}
} else {
virReportError(VIR_ERR_XML_ERROR,
"%s", _("missing source address type"));
- goto cleanup;
+ return -1;
}
if (!(sourcenode = virXPathNode("./source", ctxt))) {
virReportError(VIR_ERR_XML_ERROR, "%s",
_("Missing <source> element in hostdev device"));
- goto cleanup;
+ return -1;
}
if (def->source.subsys.type != VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_USB &&
@@ -7872,20 +7828,20 @@ virDomainHostdevDefParseXMLSubsys(xmlNodePtr node,
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
_("Setting startupPolicy is only allowed for USB"
" devices"));
- goto cleanup;
+ return -1;
}
if (sgio) {
if (def->source.subsys.type != VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI) {
virReportError(VIR_ERR_XML_ERROR, "%s",
_("sgio is only supported for scsi host device"));
- goto cleanup;
+ return -1;
}
if ((scsisrc->sgio = virDomainDeviceSGIOTypeFromString(sgio)) <= 0) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("unknown sgio mode '%s'"), sgio);
- goto cleanup;
+ return -1;
}
}
@@ -7893,14 +7849,14 @@ virDomainHostdevDefParseXMLSubsys(xmlNodePtr node,
if (def->source.subsys.type != VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI) {
virReportError(VIR_ERR_XML_ERROR, "%s",
_("rawio is only supported for scsi host device"));
- goto cleanup;
+ return -1;
}
if ((scsisrc->rawio = virTristateBoolTypeFromString(rawio)) <= 0) {
virReportError(VIR_ERR_XML_ERROR,
_("unknown hostdev rawio setting '%s'"),
rawio);
- goto cleanup;
+ return -1;
}
}
@@ -7909,21 +7865,21 @@ virDomainHostdevDefParseXMLSubsys(xmlNodePtr node,
virReportError(VIR_ERR_XML_ERROR, "%s",
_("'model' attribute in <hostdev> is only
supported "
"when type='mdev'"));
- goto cleanup;
+ return -1;
}
} else {
if (!model) {
virReportError(VIR_ERR_XML_ERROR, "%s",
_("Missing 'model' attribute in mediated
device's "
"<hostdev> element"));
- goto cleanup;
+ return -1;
}
if ((mdevsrc->model = virMediatedDeviceModelTypeFromString(model)) < 0) {
virReportError(VIR_ERR_XML_ERROR,
_("unknown hostdev model '%s'"),
model);
- goto cleanup;
+ return -1;
}
if (display &&
@@ -7932,14 +7888,14 @@ virDomainHostdevDefParseXMLSubsys(xmlNodePtr node,
_("unknown value '%s' for <hostdev>
attribute "
"'display'"),
display);
- goto cleanup;
+ return -1;
}
}
switch (def->source.subsys.type) {
case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI:
if (virDomainHostdevSubsysPCIDefParseXML(sourcenode, def, flags) < 0)
- goto cleanup;
+ return -1;
backend = VIR_DOMAIN_HOSTDEV_PCI_BACKEND_DEFAULT;
if ((backendStr = virXPathString("string(./driver/@name)", ctxt))
&&
@@ -7948,7 +7904,7 @@ virDomainHostdevDefParseXMLSubsys(xmlNodePtr node,
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("Unknown PCI device <driver name='%s'/>
"
"has been specified"), backendStr);
- goto cleanup;
+ return -1;
}
pcisrc->backend = backend;
@@ -7956,33 +7912,31 @@ virDomainHostdevDefParseXMLSubsys(xmlNodePtr node,
case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_USB:
if (virDomainHostdevSubsysUSBDefParseXML(sourcenode, def) < 0)
- goto cleanup;
+ return -1;
break;
case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI:
if (virDomainHostdevSubsysSCSIDefParseXML(sourcenode, scsisrc, ctxt) < 0)
- goto cleanup;
+ return -1;
break;
case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI_HOST:
if (virDomainHostdevSubsysSCSIVHostDefParseXML(sourcenode, def) < 0)
- goto cleanup;
+ return -1;
break;
case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_MDEV:
if (virDomainHostdevSubsysMediatedDevDefParseXML(def, ctxt) < 0)
- goto cleanup;
+ return -1;
break;
default:
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("address type='%s' not supported in hostdev
interfaces"),
virDomainHostdevSubsysTypeToString(def->source.subsys.type));
- goto cleanup;
+ return -1;
}
- ret = 0;
- cleanup:
- return ret;
+ return 0;
}
static virNetDevIPAddrPtr
@@ -8001,7 +7955,7 @@ virDomainNetIPParseXML(xmlNodePtr node)
if (!(address = virXMLPropString(node, "address"))) {
virReportError(VIR_ERR_XML_ERROR, "%s",
_("Missing required address in <ip>"));
- goto cleanup;
+ return NULL;
}
familyStr = virXMLPropString(node, "family");
@@ -8013,13 +7967,13 @@ virDomainNetIPParseXML(xmlNodePtr node)
family = virSocketAddrNumericFamily(address);
if (VIR_ALLOC(ip) < 0)
- goto cleanup;
+ return NULL;
if (virSocketAddrParse(&ip->address, address, family) < 0) {
virReportError(VIR_ERR_XML_ERROR,
_("Invalid address '%s' in <ip>"),
address);
- goto cleanup;
+ return NULL;
}
prefixStr = virXMLPropString(node, "prefix");
@@ -8030,7 +7984,7 @@ virDomainNetIPParseXML(xmlNodePtr node)
virReportError(VIR_ERR_XML_ERROR,
_("Invalid prefix value '%s' in <ip>"),
prefixStr);
- goto cleanup;
+ return NULL;
}
ip->prefix = prefixValue;
@@ -8038,12 +7992,10 @@ virDomainNetIPParseXML(xmlNodePtr node)
virSocketAddrParse(&ip->peer, peer, family) < 0) {
virReportError(VIR_ERR_INVALID_ARG,
_("Invalid peer '%s' in <ip>"), peer);
- goto cleanup;
+ return NULL;
}
VIR_STEAL_PTR(ret, ip);
-
- cleanup:
return ret;
}
@@ -8842,7 +8794,6 @@ virDomainDiskSourceNetworkParse(xmlNodePtr node,
unsigned int flags)
{
int tlsCfgVal;
- int ret = -1;
VIR_AUTOFREE(char *) protocol = NULL;
VIR_AUTOFREE(char *) haveTLS = NULL;
VIR_AUTOFREE(char *) tlsCfg = NULL;
@@ -8850,27 +8801,27 @@ virDomainDiskSourceNetworkParse(xmlNodePtr node,
if (!(protocol = virXMLPropString(node, "protocol"))) {
virReportError(VIR_ERR_XML_ERROR, "%s",
_("missing network source protocol type"));
- goto cleanup;
+ return -1;
}
if ((src->protocol = virStorageNetProtocolTypeFromString(protocol)) <= 0) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("unknown protocol type '%s'"), protocol);
- goto cleanup;
+ return -1;
}
if (!(src->path = virXMLPropString(node, "name")) &&
src->protocol != VIR_STORAGE_NET_PROTOCOL_NBD) {
virReportError(VIR_ERR_XML_ERROR, "%s",
_("missing name for disk source"));
- goto cleanup;
+ return -1;
}
if ((haveTLS = virXMLPropString(node, "tls")) &&
(src->haveTLS = virTristateBoolTypeFromString(haveTLS)) <= 0) {
virReportError(VIR_ERR_XML_ERROR,
_("unknown disk source 'tls' setting '%s'"),
haveTLS);
- goto cleanup;
+ return -1;
}
if ((flags & VIR_DOMAIN_DEF_PARSE_STATUS) &&
@@ -8879,7 +8830,7 @@ virDomainDiskSourceNetworkParse(xmlNodePtr node,
virReportError(VIR_ERR_XML_ERROR,
_("Invalid tlsFromConfig value: %s"),
tlsCfg);
- goto cleanup;
+ return -1;
}
src->tlsFromConfig = !!tlsCfgVal;
}
@@ -8895,13 +8846,13 @@ virDomainDiskSourceNetworkParse(xmlNodePtr node,
virReportError(VIR_ERR_XML_ERROR,
_("can't split path '%s' into pool name and
image "
"name"), src->path);
- goto cleanup;
+ return -1;
}
src->volume = src->path;
if (VIR_STRDUP(src->path, tmp + 1) < 0)
- goto cleanup;
+ return -1;
tmp[0] = '\0';
}
@@ -8913,16 +8864,13 @@ virDomainDiskSourceNetworkParse(xmlNodePtr node,
src->configFile = virXPathString("string(./config/@file)", ctxt);
if (virDomainStorageNetworkParseHosts(node, &src->hosts, &src->nhosts)
< 0)
- goto cleanup;
+ return -1;
virStorageSourceNetworkAssignDefaultPorts(src);
virStorageSourceInitiatorParseXML(ctxt, &src->initiator);
- ret = 0;
-
- cleanup:
- return ret;
+ return 0;
}
@@ -9236,20 +9184,19 @@ virDomainDiskDefMirrorParse(virDomainDiskDefPtr def,
virDomainXMLOptionPtr xmlopt)
{
xmlNodePtr mirrorNode;
- int ret = -1;
VIR_AUTOFREE(char *) mirrorFormat = NULL;
VIR_AUTOFREE(char *) mirrorType = NULL;
VIR_AUTOFREE(char *) ready = NULL;
VIR_AUTOFREE(char *) blockJob = NULL;
if (!(def->mirror = virStorageSourceNew()))
- goto cleanup;
+ return -1;
if ((blockJob = virXMLPropString(cur, "job"))) {
if ((def->mirrorJob = virDomainBlockJobTypeFromString(blockJob)) <= 0) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("unknown mirror job type '%s'"),
blockJob);
- goto cleanup;
+ return -1;
}
} else {
def->mirrorJob = VIR_DOMAIN_BLOCK_JOB_TYPE_COPY;
@@ -9260,7 +9207,7 @@ virDomainDiskDefMirrorParse(virDomainDiskDefPtr def,
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("unknown mirror backing store type
'%s'"),
mirrorType);
- goto cleanup;
+ return -1;
}
mirrorFormat = virXPathString("string(./mirror/format/@type)", ctxt);
@@ -9268,12 +9215,12 @@ virDomainDiskDefMirrorParse(virDomainDiskDefPtr def,
if (!(mirrorNode = virXPathNode("./mirror/source", ctxt))) {
virReportError(VIR_ERR_XML_ERROR, "%s",
_("mirror requires source element"));
- goto cleanup;
+ return -1;
}
if (virDomainDiskSourceParse(mirrorNode, ctxt, def->mirror,
flags, xmlopt) < 0)
- goto cleanup;
+ return -1;
} else {
/* For back-compat reasons, we handle a file name
* encoded as attributes, even though we prefer
@@ -9283,13 +9230,13 @@ virDomainDiskDefMirrorParse(virDomainDiskDefPtr def,
if (!def->mirror->path) {
virReportError(VIR_ERR_XML_ERROR, "%s",
_("mirror requires file name"));
- goto cleanup;
+ return -1;
}
if (def->mirrorJob != VIR_DOMAIN_BLOCK_JOB_TYPE_COPY) {
virReportError(VIR_ERR_XML_ERROR, "%s",
_("mirror without type only supported "
"by copy job"));
- goto cleanup;
+ return -1;
}
mirrorFormat = virXMLPropString(cur, "format");
}
@@ -9299,7 +9246,7 @@ virDomainDiskDefMirrorParse(virDomainDiskDefPtr def,
if (def->mirror->format <= 0) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("unknown mirror format value '%s'"),
mirrorFormat);
- goto cleanup;
+ return -1;
}
}
@@ -9307,13 +9254,10 @@ virDomainDiskDefMirrorParse(virDomainDiskDefPtr def,
(def->mirrorState = virDomainDiskMirrorStateTypeFromString(ready)) < 0) {
virReportError(VIR_ERR_XML_ERROR,
_("unknown mirror ready state %s"), ready);
- goto cleanup;
+ return -1;
}
- ret = 0;
-
- cleanup:
- return ret;
+ return 0;
}
@@ -9327,7 +9271,7 @@ virDomainDiskDefGeometryParse(virDomainDiskDefPtr def,
if (virStrToLong_ui(tmp, NULL, 10, &def->geometry.cylinders) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("invalid geometry settings (cyls)"));
- goto error;
+ return -1;
}
VIR_FREE(tmp);
}
@@ -9336,7 +9280,7 @@ virDomainDiskDefGeometryParse(virDomainDiskDefPtr def,
if (virStrToLong_ui(tmp, NULL, 10, &def->geometry.heads) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("invalid geometry settings (heads)"));
- goto error;
+ return -1;
}
VIR_FREE(tmp);
}
@@ -9345,7 +9289,7 @@ virDomainDiskDefGeometryParse(virDomainDiskDefPtr def,
if (virStrToLong_ui(tmp, NULL, 10, &def->geometry.sectors) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("invalid geometry settings (secs)"));
- goto error;
+ return -1;
}
VIR_FREE(tmp);
}
@@ -9356,14 +9300,11 @@ virDomainDiskDefGeometryParse(virDomainDiskDefPtr def,
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("invalid translation value '%s'"),
tmp);
- goto error;
+ return -1;
}
}
return 0;
-
- error:
- return -1;
}
@@ -9507,7 +9448,6 @@ static int
virDomainDiskDefDriverParseXML(virDomainDiskDefPtr def,
xmlNodePtr cur)
{
- int ret = -1;
VIR_AUTOFREE(char *) tmp = NULL;
def->driverName = virXMLPropString(cur, "name");
@@ -9516,7 +9456,7 @@ virDomainDiskDefDriverParseXML(virDomainDiskDefPtr def,
(def->cachemode = virDomainDiskCacheTypeFromString(tmp)) < 0) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("unknown disk cache mode '%s'"), tmp);
- goto cleanup;
+ return -1;
}
VIR_FREE(tmp);
@@ -9524,7 +9464,7 @@ virDomainDiskDefDriverParseXML(virDomainDiskDefPtr def,
(def->error_policy = virDomainDiskErrorPolicyTypeFromString(tmp)) <= 0) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("unknown disk error policy '%s'"), tmp);
- goto cleanup;
+ return -1;
}
VIR_FREE(tmp);
@@ -9533,7 +9473,7 @@ virDomainDiskDefDriverParseXML(virDomainDiskDefPtr def,
(def->rerror_policy == VIR_DOMAIN_DISK_ERROR_POLICY_ENOSPACE))) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("unknown disk read error policy '%s'"), tmp);
- goto cleanup;
+ return -1;
}
VIR_FREE(tmp);
@@ -9541,7 +9481,7 @@ virDomainDiskDefDriverParseXML(virDomainDiskDefPtr def,
(def->iomode = virDomainDiskIoTypeFromString(tmp)) <= 0) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("unknown disk io mode '%s'"), tmp);
- goto cleanup;
+ return -1;
}
VIR_FREE(tmp);
@@ -9549,7 +9489,7 @@ virDomainDiskDefDriverParseXML(virDomainDiskDefPtr def,
(def->ioeventfd = virTristateSwitchTypeFromString(tmp)) <= 0) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("unknown disk ioeventfd mode '%s'"), tmp);
- goto cleanup;
+ return -1;
}
VIR_FREE(tmp);
@@ -9557,7 +9497,7 @@ virDomainDiskDefDriverParseXML(virDomainDiskDefPtr def,
(def->event_idx = virTristateSwitchTypeFromString(tmp)) <= 0) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("unknown disk event_idx mode '%s'"), tmp);
- goto cleanup;
+ return -1;
}
VIR_FREE(tmp);
@@ -9565,7 +9505,7 @@ virDomainDiskDefDriverParseXML(virDomainDiskDefPtr def,
(def->copy_on_read = virTristateSwitchTypeFromString(tmp)) <= 0) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("unknown disk copy_on_read mode '%s'"), tmp);
- goto cleanup;
+ return -1;
}
VIR_FREE(tmp);
@@ -9573,7 +9513,7 @@ virDomainDiskDefDriverParseXML(virDomainDiskDefPtr def,
(def->discard = virDomainDiskDiscardTypeFromString(tmp)) <= 0) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("unknown disk discard mode '%s'"), tmp);
- goto cleanup;
+ return -1;
}
VIR_FREE(tmp);
@@ -9583,7 +9523,7 @@ virDomainDiskDefDriverParseXML(virDomainDiskDefPtr def,
virReportError(VIR_ERR_XML_ERROR,
_("Invalid iothread attribute in disk driver element:
%s"),
tmp);
- goto cleanup;
+ return -1;
}
VIR_FREE(tmp);
@@ -9595,7 +9535,7 @@ virDomainDiskDefDriverParseXML(virDomainDiskDefPtr def,
if ((def->src->format = virStorageFileFormatTypeFromString(tmp)) <=
0) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("unknown driver format value '%s'"),
tmp);
- goto cleanup;
+ return -1;
}
}
@@ -9606,7 +9546,7 @@ virDomainDiskDefDriverParseXML(virDomainDiskDefPtr def,
(def->detect_zeroes = virDomainDiskDetectZeroesTypeFromString(tmp)) <= 0)
{
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("unknown driver detect_zeroes value '%s'"),
tmp);
- goto cleanup;
+ return -1;
}
VIR_FREE(tmp);
@@ -9615,13 +9555,10 @@ virDomainDiskDefDriverParseXML(virDomainDiskDefPtr def,
virReportError(VIR_ERR_XML_ERROR,
_("'queues' attribute must be positive number:
%s"),
tmp);
- goto cleanup;
+ return -1;
}
- ret = 0;
-
- cleanup:
- return ret;
+ return 0;
}
@@ -10117,7 +10054,6 @@ virDomainParseScaledValue(const char *xpath,
unsigned long long max,
bool required)
{
- int ret = -1;
unsigned long long bytes;
VIR_AUTOFREE(char *) xpath_full = NULL;
VIR_AUTOFREE(char *) unit = NULL;
@@ -10125,18 +10061,16 @@ virDomainParseScaledValue(const char *xpath,
*val = 0;
if (virAsprintf(&xpath_full, "string(%s)", xpath) < 0)
- goto cleanup;
+ return -1;
bytes_str = virXPathString(xpath_full, ctxt);
if (!bytes_str) {
- if (!required) {
- ret = 0;
- } else {
- virReportError(VIR_ERR_XML_ERROR,
- _("missing element or attribute '%s'"),
- xpath);
- }
- goto cleanup;
+ if (!required)
+ return 0;
+ virReportError(VIR_ERR_XML_ERROR,
+ _("missing element or attribute '%s'"),
+ xpath);
+ return -1;
}
VIR_FREE(xpath_full);
@@ -10144,23 +10078,21 @@ virDomainParseScaledValue(const char *xpath,
virReportError(VIR_ERR_XML_ERROR,
_("Invalid value '%s' for element or attribute
'%s'"),
bytes_str, xpath);
- goto cleanup;
+ return -1;
}
if ((units_xpath &&
virAsprintf(&xpath_full, "string(%s)", units_xpath) < 0) ||
(!units_xpath &&
virAsprintf(&xpath_full, "string(%s/@unit)", xpath) < 0))
- goto cleanup;
+ return -1;
unit = virXPathString(xpath_full, ctxt);
if (virScaleInteger(&bytes, unit, scale, max) < 0)
- goto cleanup;
+ return -1;
*val = bytes;
- ret = 1;
- cleanup:
- return ret;
+ return 1;
}
@@ -12034,7 +11966,6 @@ virDomainChrDefParseTargetXML(virDomainChrDefPtr def,
xmlNodePtr cur,
unsigned int flags)
{
- int ret = -1;
xmlNodePtr child;
unsigned int port;
VIR_AUTOFREE(char *) targetType = virXMLPropString(cur, "type");
@@ -12049,7 +11980,7 @@ virDomainChrDefParseTargetXML(virDomainChrDefPtr def,
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("unknown target type '%s' specified for character
device"),
targetType);
- goto error;
+ return -1;
}
child = cur->children;
@@ -12067,7 +11998,7 @@ virDomainChrDefParseTargetXML(virDomainChrDefPtr def,
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("unknown target model '%s' specified for character
device"),
targetModel);
- goto error;
+ return -1;
}
switch (def->deviceType) {
@@ -12078,37 +12009,37 @@ virDomainChrDefParseTargetXML(virDomainChrDefPtr def,
portStr = virXMLPropString(cur, "port");
if (VIR_ALLOC(def->target.addr) < 0)
- goto error;
+ return -1;
if (addrStr == NULL) {
virReportError(VIR_ERR_XML_ERROR, "%s",
_("guestfwd channel does not "
"define a target address"));
- goto error;
+ return -1;
}
if (virSocketAddrParse(def->target.addr, addrStr, AF_UNSPEC) < 0)
- goto error;
+ return -1;
if (def->target.addr->data.stor.ss_family != AF_INET) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
"%s", _("guestfwd channel only supports
"
"IPv4 addresses"));
- goto error;
+ return -1;
}
if (portStr == NULL) {
virReportError(VIR_ERR_XML_ERROR, "%s",
_("guestfwd channel does "
"not define a target port"));
- goto error;
+ return -1;
}
if (virStrToLong_ui(portStr, NULL, 10, &port) < 0) {
virReportError(VIR_ERR_XML_ERROR,
_("Invalid port number: %s"),
portStr);
- goto error;
+ return -1;
}
virSocketAddrSetPort(def->target.addr, port);
@@ -12127,7 +12058,7 @@ virDomainChrDefParseTargetXML(virDomainChrDefPtr def,
virReportError(VIR_ERR_XML_ERROR,
_("invalid channel state value
'%s'"),
stateStr);
- goto error;
+ return -1;
}
def->state = tmp;
@@ -12148,16 +12079,13 @@ virDomainChrDefParseTargetXML(virDomainChrDefPtr def,
virReportError(VIR_ERR_XML_ERROR,
_("Invalid port number: %s"),
portStr);
- goto error;
+ return -1;
}
def->target.port = port;
break;
}
-
- ret = 0;
- error:
- return ret;
+ return 0;
}
typedef enum {
@@ -12176,19 +12104,17 @@ typedef enum {
static int
virDomainChrSourceDefParseMode(xmlNodePtr source)
{
- int ret = -1;
VIR_AUTOFREE(char *) mode = virXMLPropString(source, "mode");
if (!mode || STREQ(mode, "connect")) {
- ret = VIR_DOMAIN_CHR_SOURCE_MODE_CONNECT;
+ return VIR_DOMAIN_CHR_SOURCE_MODE_CONNECT;
} else if (STREQ(mode, "bind")) {
- ret = VIR_DOMAIN_CHR_SOURCE_MODE_BIND;
- } else {
- virReportError(VIR_ERR_INTERNAL_ERROR,
- _("Unknown source mode '%s'"), mode);
+ return VIR_DOMAIN_CHR_SOURCE_MODE_BIND;
}
- return ret;
+ virReportError(VIR_ERR_INTERNAL_ERROR,
+ _("Unknown source mode '%s'"), mode);
+ return -1;
}
@@ -12203,7 +12129,7 @@ virDomainChrSourceDefParseTCP(virDomainChrSourceDefPtr def,
VIR_AUTOFREE(char *) tmp = NULL;
if ((mode = virDomainChrSourceDefParseMode(source)) < 0)
- goto error;
+ return -1;
def->data.tcp.listen = mode == VIR_DOMAIN_CHR_SOURCE_MODE_BIND;
def->data.tcp.host = virXMLPropString(source, "host");
@@ -12214,7 +12140,7 @@ virDomainChrSourceDefParseTCP(virDomainChrSourceDefPtr def,
virReportError(VIR_ERR_XML_ERROR,
_("unknown chardev 'tls' setting
'%s'"),
tmp);
- goto error;
+ return -1;
}
VIR_FREE(tmp);
}
@@ -12225,7 +12151,7 @@ virDomainChrSourceDefParseTCP(virDomainChrSourceDefPtr def,
virReportError(VIR_ERR_XML_ERROR,
_("Invalid tlsFromConfig value: %s"),
tmp);
- goto error;
+ return -1;
}
def->data.tcp.tlsFromConfig = !!tmpVal;
}
@@ -12233,13 +12159,10 @@ virDomainChrSourceDefParseTCP(virDomainChrSourceDefPtr def,
if (virDomainChrSourceReconnectDefParseXML(&def->data.tcp.reconnect,
source,
ctxt) < 0) {
- goto error;
+ return -1;
}
return 0;
-
- error:
- return -1;
}
@@ -13575,7 +13498,6 @@ virDomainGraphicsDefParseXMLVNC(virDomainGraphicsDefPtr def,
xmlXPathContextPtr ctxt,
unsigned int flags)
{
- int ret = -1;
VIR_AUTOFREE(char *) port = virXMLPropString(node, "port");
VIR_AUTOFREE(char *) websocket = virXMLPropString(node, "websocket");
VIR_AUTOFREE(char *) websocketGenerated = virXMLPropString(node,
"websocketGenerated");
@@ -13583,13 +13505,13 @@ virDomainGraphicsDefParseXMLVNC(virDomainGraphicsDefPtr def,
VIR_AUTOFREE(char *) autoport = virXMLPropString(node, "autoport");
if (virDomainGraphicsListensParseXML(def, node, ctxt, flags) < 0)
- goto cleanup;
+ return -1;
if (port) {
if (virStrToLong_i(port, NULL, 10, &def->data.vnc.port) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("cannot parse vnc port %s"), port);
- goto cleanup;
+ return -1;
}
/* Legacy compat syntax, used -1 for auto-port */
if (def->data.vnc.port == -1) {
@@ -13618,7 +13540,7 @@ virDomainGraphicsDefParseXMLVNC(virDomainGraphicsDefPtr def,
&def->data.vnc.websocket) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("cannot parse vnc WebSocket port %s"),
websocket);
- goto cleanup;
+ return -1;
}
}
@@ -13633,7 +13555,7 @@ virDomainGraphicsDefParseXMLVNC(virDomainGraphicsDefPtr def,
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("unknown vnc display sharing policy
'%s'"),
sharePolicy);
- goto cleanup;
+ return -1;
} else {
def->data.vnc.sharePolicy = policy;
}
@@ -13643,11 +13565,9 @@ virDomainGraphicsDefParseXMLVNC(virDomainGraphicsDefPtr def,
if (virDomainGraphicsAuthDefParseXML(node, &def->data.vnc.auth,
def->type) < 0)
- goto cleanup;
+ return -1;
- ret = 0;
- cleanup:
- return ret;
+ return 0;
}
@@ -13713,20 +13633,19 @@ virDomainGraphicsDefParseXMLRDP(virDomainGraphicsDefPtr def,
xmlXPathContextPtr ctxt,
unsigned int flags)
{
- int ret = -1;
VIR_AUTOFREE(char *) port = virXMLPropString(node, "port");
VIR_AUTOFREE(char *) autoport = virXMLPropString(node, "autoport");
VIR_AUTOFREE(char *) replaceUser = virXMLPropString(node, "replaceUser");
VIR_AUTOFREE(char *) multiUser = virXMLPropString(node, "multiUser");
if (virDomainGraphicsListensParseXML(def, node, ctxt, flags) < 0)
- goto error;
+ return -1;
if (port) {
if (virStrToLong_i(port, NULL, 10, &def->data.rdp.port) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("cannot parse rdp port %s"), port);
- goto error;
+ return -1;
}
/* Legacy compat syntax, used -1 for auto-port */
if (def->data.rdp.port == -1)
@@ -13749,9 +13668,7 @@ virDomainGraphicsDefParseXMLRDP(virDomainGraphicsDefPtr def,
if (STREQ_NULLABLE(multiUser, "yes"))
def->data.rdp.multiUser = true;
- ret = 0;
- error:
- return ret;
+ return 0;
}
@@ -13759,7 +13676,6 @@ static int
virDomainGraphicsDefParseXMLDesktop(virDomainGraphicsDefPtr def,
xmlNodePtr node)
{
- int ret = -1;
VIR_AUTOFREE(char *) fullscreen = virXMLPropString(node, "fullscreen");
if (fullscreen != NULL) {
@@ -13770,7 +13686,7 @@ virDomainGraphicsDefParseXMLDesktop(virDomainGraphicsDefPtr def,
} else {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("unknown fullscreen value '%s'"),
fullscreen);
- goto cleanup;
+ return -1;
}
} else {
def->data.desktop.fullscreen = false;
@@ -13778,9 +13694,7 @@ virDomainGraphicsDefParseXMLDesktop(virDomainGraphicsDefPtr def,
def->data.desktop.display = virXMLPropString(node, "display");
- ret = 0;
- cleanup:
- return ret;
+ return 0;
}
@@ -13792,20 +13706,19 @@ virDomainGraphicsDefParseXMLSpice(virDomainGraphicsDefPtr def,
{
xmlNodePtr cur;
int defaultModeVal;
- int ret = -1;
VIR_AUTOFREE(char *) port = virXMLPropString(node, "port");
VIR_AUTOFREE(char *) tlsPort = virXMLPropString(node, "tlsPort");
VIR_AUTOFREE(char *) autoport = virXMLPropString(node, "autoport");
VIR_AUTOFREE(char *) defaultMode = virXMLPropString(node, "defaultMode");
if (virDomainGraphicsListensParseXML(def, node, ctxt, flags) < 0)
- goto error;
+ return -1;
if (port) {
if (virStrToLong_i(port, NULL, 10, &def->data.spice.port) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("cannot parse spice port %s"), port);
- goto error;
+ return -1;
}
} else {
def->data.spice.port = 0;
@@ -13815,7 +13728,7 @@ virDomainGraphicsDefParseXMLSpice(virDomainGraphicsDefPtr def,
if (virStrToLong_i(tlsPort, NULL, 10, &def->data.spice.tlsPort) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("cannot parse spice tlsPort %s"), tlsPort);
- goto error;
+ return -1;
}
} else {
def->data.spice.tlsPort = 0;
@@ -13831,7 +13744,7 @@ virDomainGraphicsDefParseXMLSpice(virDomainGraphicsDefPtr def,
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("unknown default spice channel mode %s"),
defaultMode);
- goto error;
+ return -1;
}
def->data.spice.defaultMode = defaultModeVal;
}
@@ -13850,7 +13763,7 @@ virDomainGraphicsDefParseXMLSpice(virDomainGraphicsDefPtr def,
if (virDomainGraphicsAuthDefParseXML(node, &def->data.spice.auth,
def->type) < 0)
- goto error;
+ return -1;
cur = node->children;
while (cur != NULL) {
@@ -13866,20 +13779,20 @@ virDomainGraphicsDefParseXMLSpice(virDomainGraphicsDefPtr def,
if (!name || !mode) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("spice channel missing name/mode"));
- goto error;
+ return -1;
}
if ((nameval = virDomainGraphicsSpiceChannelNameTypeFromString(name))
< 0) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("unknown spice channel name %s"),
name);
- goto error;
+ return -1;
}
if ((modeval = virDomainGraphicsSpiceChannelModeTypeFromString(mode))
< 0) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("unknown spice channel mode %s"),
mode);
- goto error;
+ return -1;
}
def->data.spice.channels[nameval] = modeval;
@@ -13890,7 +13803,7 @@ virDomainGraphicsDefParseXMLSpice(virDomainGraphicsDefPtr def,
if (!compression) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("spice image missing compression"));
- goto error;
+ return -1;
}
if ((compressionVal =
@@ -13898,7 +13811,7 @@ virDomainGraphicsDefParseXMLSpice(virDomainGraphicsDefPtr def,
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("unknown spice image compression %s"),
compression);
- goto error;
+ return -1;
}
def->data.spice.image = compressionVal;
@@ -13909,7 +13822,7 @@ virDomainGraphicsDefParseXMLSpice(virDomainGraphicsDefPtr def,
if (!compression) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("spice jpeg missing compression"));
- goto error;
+ return -1;
}
if ((compressionVal =
@@ -13917,7 +13830,7 @@ virDomainGraphicsDefParseXMLSpice(virDomainGraphicsDefPtr def,
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("unknown spice jpeg compression %s"),
compression);
- goto error;
+ return -1;
}
def->data.spice.jpeg = compressionVal;
@@ -13928,7 +13841,7 @@ virDomainGraphicsDefParseXMLSpice(virDomainGraphicsDefPtr def,
if (!compression) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("spice zlib missing compression"));
- goto error;
+ return -1;
}
if ((compressionVal =
@@ -13936,7 +13849,7 @@ virDomainGraphicsDefParseXMLSpice(virDomainGraphicsDefPtr def,
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("unknown spice zlib compression %s"),
compression);
- goto error;
+ return -1;
}
def->data.spice.zlib = compressionVal;
@@ -13947,15 +13860,14 @@ virDomainGraphicsDefParseXMLSpice(virDomainGraphicsDefPtr def,
if (!compression) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("spice playback missing compression"));
- goto error;
+ return -1;
}
if ((compressionVal =
virTristateSwitchTypeFromString(compression)) <= 0) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
_("unknown spice playback compression"));
- goto error;
-
+ return -1;
}
def->data.spice.playback = compressionVal;
@@ -13966,14 +13878,13 @@ virDomainGraphicsDefParseXMLSpice(virDomainGraphicsDefPtr def,
if (!mode) {
virReportError(VIR_ERR_XML_ERROR, "%s",
_("spice streaming missing mode"));
- goto error;
+ return -1;
}
if ((modeVal =
virDomainGraphicsSpiceStreamingModeTypeFromString(mode)) <= 0) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
_("unknown spice streaming mode"));
- goto error;
-
+ return -1;
}
def->data.spice.streaming = modeVal;
@@ -13984,14 +13895,14 @@ virDomainGraphicsDefParseXMLSpice(virDomainGraphicsDefPtr def,
if (!copypaste) {
virReportError(VIR_ERR_XML_ERROR, "%s",
_("spice clipboard missing copypaste"));
- goto error;
+ return -1;
}
if ((copypasteVal =
virTristateBoolTypeFromString(copypaste)) <= 0) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("unknown copypaste value '%s'"),
copypaste);
- goto error;
+ return -1;
}
def->data.spice.copypaste = copypasteVal;
@@ -14002,14 +13913,14 @@ virDomainGraphicsDefParseXMLSpice(virDomainGraphicsDefPtr def,
if (!enable) {
virReportError(VIR_ERR_XML_ERROR, "%s",
_("spice filetransfer missing enable"));
- goto error;
+ return -1;
}
if ((enableVal =
virTristateBoolTypeFromString(enable)) <= 0) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("unknown enable value '%s'"),
enable);
- goto error;
+ return -1;
}
def->data.spice.filetransfer = enableVal;
@@ -14021,14 +13932,14 @@ virDomainGraphicsDefParseXMLSpice(virDomainGraphicsDefPtr def,
if (!enable) {
virReportError(VIR_ERR_XML_ERROR, "%s",
_("spice gl element missing enable"));
- goto error;
+ return -1;
}
if ((enableVal =
virTristateBoolTypeFromString(enable)) <= 0) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("unknown enable value '%s'"),
enable);
- goto error;
+ return -1;
}
def->data.spice.gl = enableVal;
@@ -14041,14 +13952,14 @@ virDomainGraphicsDefParseXMLSpice(virDomainGraphicsDefPtr def,
if (!mode) {
virReportError(VIR_ERR_XML_ERROR, "%s",
_("spice mouse missing mode"));
- goto error;
+ return -1;
}
if ((modeVal = virDomainGraphicsSpiceMouseModeTypeFromString(mode)) <=
0) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("unknown mouse mode value '%s'"),
mode);
- goto error;
+ return -1;
}
def->data.spice.mousemode = modeVal;
@@ -14057,9 +13968,7 @@ virDomainGraphicsDefParseXMLSpice(virDomainGraphicsDefPtr def,
cur = cur->next;
}
- ret = 0;
- error:
- return ret;
+ return 0;
}
@@ -15587,7 +15496,6 @@ virDomainPMStateParseXML(xmlXPathContextPtr ctxt,
const char *xpath,
int *val)
{
- int ret = -1;
VIR_AUTOFREE(char *) tmp = virXPathString(xpath, ctxt);
if (tmp) {
@@ -15595,13 +15503,11 @@ virDomainPMStateParseXML(xmlXPathContextPtr ctxt,
if (*val < 0) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("unknown PM state value %s"), tmp);
- goto cleanup;
+ return -1;
}
}
- ret = 0;
- cleanup:
- return ret;
+ return 0;
}
@@ -15610,44 +15516,40 @@ virDomainPerfEventDefParseXML(virDomainPerfDefPtr perf,
xmlNodePtr node)
{
int event;
- int ret = -1;
VIR_AUTOFREE(char *) name = NULL;
VIR_AUTOFREE(char *) enabled = NULL;
if (!(name = virXMLPropString(node, "name"))) {
virReportError(VIR_ERR_XML_ERROR, "%s", _("missing perf event
name"));
- goto cleanup;
+ return -1;
}
if ((event = virPerfEventTypeFromString(name)) < 0) {
virReportError(VIR_ERR_XML_ERROR,
_("'unsupported perf event '%s'"), name);
- goto cleanup;
+ return -1;
}
if (perf->events[event] != VIR_TRISTATE_BOOL_ABSENT) {
virReportError(VIR_ERR_XML_ERROR,
_("perf event '%s' was already specified"),
name);
- goto cleanup;
+ return -1;
}
if (!(enabled = virXMLPropString(node, "enabled"))) {
virReportError(VIR_ERR_XML_ERROR,
_("missing state of perf event '%s'"), name);
- goto cleanup;
+ return -1;
}
if ((perf->events[event] = virTristateBoolTypeFromString(enabled)) < 0) {
virReportError(VIR_ERR_XML_ERROR,
_("invalid state '%s' of perf event
'%s'"),
enabled, name);
- goto cleanup;
+ return -1;
}
- ret = 0;
-
- cleanup:
- return ret;
+ return 0;
}
static int
@@ -15655,7 +15557,6 @@ virDomainPerfDefParseXML(virDomainDefPtr def,
xmlXPathContextPtr ctxt)
{
size_t i;
- int ret = -1;
int n;
VIR_AUTOFREE(xmlNodePtr *) nodes = NULL;
@@ -15664,13 +15565,10 @@ virDomainPerfDefParseXML(virDomainDefPtr def,
for (i = 0; i < n; i++) {
if (virDomainPerfEventDefParseXML(&def->perf, nodes[i]) < 0)
- goto cleanup;
+ return -1;
}
- ret = 0;
-
- cleanup:
- return ret;
+ return 0;
}
static int
@@ -17676,13 +17574,12 @@ virDomainDefParseBootXML(xmlXPathContextPtr ctxt,
xmlNodePtr node;
size_t i;
int n;
- int ret = -1;
VIR_AUTOFREE(char *) tmp = NULL;
VIR_AUTOFREE(xmlNodePtr *) nodes = NULL;
/* analysis of the boot devices */
if ((n = virXPathNodeSet("./os/boot", ctxt, &nodes)) < 0)
- goto cleanup;
+ return -1;
for (i = 0; i < n && i < VIR_DOMAIN_BOOT_LAST; i++) {
int val;
@@ -17690,14 +17587,14 @@ virDomainDefParseBootXML(xmlXPathContextPtr ctxt,
if (!dev) {
virReportError(VIR_ERR_INTERNAL_ERROR,
"%s", _("missing boot device"));
- goto cleanup;
+ return -1;
}
if ((val = virDomainBootTypeFromString(dev)) < 0) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("unknown boot device '%s'"),
dev);
VIR_FREE(dev);
- goto cleanup;
+ return -1;
}
VIR_FREE(dev);
def->os.bootDevs[def->os.nBootDevs++] = val;
@@ -17725,7 +17622,7 @@ virDomainDefParseBootXML(xmlXPathContextPtr ctxt,
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
_("invalid value for boot menu timeout, "
"must be in range [0,65535]"));
- goto cleanup;
+ return -1;
}
def->os.bm_timeout_set = true;
}
@@ -17751,16 +17648,13 @@ virDomainDefParseBootXML(xmlXPathContextPtr ctxt,
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
_("invalid value for rebootTimeout, "
"must be in range [-1,65535]"));
- goto cleanup;
+ return -1;
}
def->os.bios.rt_set = true;
}
}
- ret = 0;
-
- cleanup:
- return ret;
+ return 0;
}
@@ -17881,41 +17775,35 @@ virDomainDefParseIOThreads(virDomainDefPtr def,
if (tmp && virStrToLong_uip(tmp, NULL, 10, &iothreads) < 0) {
virReportError(VIR_ERR_XML_ERROR,
_("invalid iothreads count '%s'"), tmp);
- goto error;
+ return -1;
}
/* Extract any iothread id's defined */
if ((n = virXPathNodeSet("./iothreadids/iothread", ctxt, &nodes)) <
0)
- goto error;
+ return -1;
if (n > iothreads)
iothreads = n;
if (n && VIR_ALLOC_N(def->iothreadids, n) < 0)
- goto error;
+ return -1;
for (i = 0; i < n; i++) {
virDomainIOThreadIDDefPtr iothrid = NULL;
if (!(iothrid = virDomainIOThreadIDDefParseXML(nodes[i])))
- goto error;
+ return -1;
if (virDomainIOThreadIDFind(def, iothrid->iothread_id)) {
virReportError(VIR_ERR_XML_ERROR,
_("duplicate iothread id '%u' found"),
iothrid->iothread_id);
virDomainIOThreadIDDefFree(iothrid);
- goto error;
+ return -1;
}
def->iothreadids[def->niothreadids++] = iothrid;
}
- if (virDomainIOThreadIDDefArrayInit(def, iothreads) < 0)
- goto error;
-
- return 0;
-
- error:
- return -1;
+ return virDomainIOThreadIDDefArrayInit(def, iothreads);
}
@@ -17930,52 +17818,47 @@ virDomainVcpuPinDefParseXML(virDomainDefPtr def,
{
virDomainVcpuDefPtr vcpu;
unsigned int vcpuid;
- int ret = -1;
VIR_AUTOFREE(char *) tmp = NULL;
if (!(tmp = virXMLPropString(node, "vcpu"))) {
virReportError(VIR_ERR_XML_ERROR, "%s", _("missing vcpu id in
vcpupin"));
- goto cleanup;
+ return -1;
}
if (virStrToLong_uip(tmp, NULL, 10, &vcpuid) < 0) {
virReportError(VIR_ERR_XML_ERROR,
_("invalid setting for vcpu '%s'"), tmp);
- goto cleanup;
+ return -1;
}
VIR_FREE(tmp);
if (!(vcpu = virDomainDefGetVcpu(def, vcpuid))) {
VIR_WARN("Ignoring vcpupin for missing vcpus");
- ret = 0;
- goto cleanup;
+ return 0;
}
if (!(tmp = virXMLPropString(node, "cpuset"))) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("missing cpuset for vcpupin"));
- goto cleanup;
+ return -1;
}
if (vcpu->cpumask) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("duplicate vcpupin for vcpu '%d'"), vcpuid);
- goto cleanup;
+ return -1;
}
if (virBitmapParse(tmp, &vcpu->cpumask, VIR_DOMAIN_CPUMASK_LEN) < 0)
- goto cleanup;
+ return -1;
if (virBitmapIsAllClear(vcpu->cpumask)) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("Invalid value of 'cpuset': %s"), tmp);
- goto cleanup;
+ return -1;
}
- ret = 0;
-
- cleanup:
- return ret;
+ return 0;
}
@@ -17987,7 +17870,6 @@ static int
virDomainIOThreadPinDefParseXML(xmlNodePtr node,
virDomainDefPtr def)
{
- int ret = -1;
virDomainIOThreadIDDefPtr iothrid;
unsigned int iothreadid;
VIR_AUTOFREE(char *) tmp = NULL;
@@ -17996,57 +17878,54 @@ virDomainIOThreadPinDefParseXML(xmlNodePtr node,
if (!(tmp = virXMLPropString(node, "iothread"))) {
virReportError(VIR_ERR_XML_ERROR, "%s",
_("missing iothread id in iothreadpin"));
- goto cleanup;
+ return -1;
}
if (virStrToLong_uip(tmp, NULL, 10, &iothreadid) < 0) {
virReportError(VIR_ERR_XML_ERROR,
_("invalid setting for iothread '%s'"), tmp);
- goto cleanup;
+ return -1;
}
VIR_FREE(tmp);
if (iothreadid == 0) {
virReportError(VIR_ERR_XML_ERROR, "%s",
_("zero is an invalid iothread id value"));
- goto cleanup;
+ return -1;
}
if (!(iothrid = virDomainIOThreadIDFind(def, iothreadid))) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("Cannot find 'iothread' : %u"),
iothreadid);
- goto cleanup;
+ return -1;
}
if (!(tmp = virXMLPropString(node, "cpuset"))) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("missing cpuset for iothreadpin"));
- goto cleanup;
+ return -1;
}
if (virBitmapParse(tmp, &cpumask, VIR_DOMAIN_CPUMASK_LEN) < 0)
- goto cleanup;
+ return -1;
if (virBitmapIsAllClear(cpumask)) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("Invalid value of 'cpuset': %s"),
tmp);
- goto cleanup;
+ return -1;
}
if (iothrid->cpumask) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("duplicate iothreadpin for same iothread
'%u'"),
iothreadid);
- goto cleanup;
+ return -1;
}
VIR_STEAL_PTR(iothrid->cpumask, cpumask);
- ret = 0;
-
- cleanup:
- return ret;
+ return 0;
}
@@ -18068,17 +17947,15 @@ virDomainEmulatorPinDefParseXML(xmlNodePtr node)
}
if (virBitmapParse(tmp, &def, VIR_DOMAIN_CPUMASK_LEN) < 0)
- goto cleanup;
+ return NULL;
if (virBitmapIsAllClear(def)) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("Invalid value of 'cpuset': %s"), tmp);
- goto cleanup;
+ return NULL;
}
VIR_STEAL_PTR(ret, def);
-
- cleanup:
return ret;
}
@@ -18317,7 +18194,6 @@ static int
virDomainLoaderDefParseXML(xmlNodePtr node,
virDomainLoaderDefPtr loader)
{
- int ret = -1;
VIR_AUTOFREE(char *) readonly_str = NULL;
VIR_AUTOFREE(char *) secure_str = NULL;
VIR_AUTOFREE(char *) type_str = NULL;
@@ -18331,14 +18207,14 @@ virDomainLoaderDefParseXML(xmlNodePtr node,
(loader->readonly = virTristateBoolTypeFromString(readonly_str)) <= 0) {
virReportError(VIR_ERR_XML_DETAIL,
_("unknown readonly value: %s"), readonly_str);
- goto cleanup;
+ return -1;
}
if (secure_str &&
(loader->secure = virTristateBoolTypeFromString(secure_str)) <= 0) {
virReportError(VIR_ERR_XML_DETAIL,
_("unknown secure value: %s"), secure_str);
- goto cleanup;
+ return -1;
}
if (type_str) {
@@ -18346,14 +18222,12 @@ virDomainLoaderDefParseXML(xmlNodePtr node,
if ((type = virDomainLoaderTypeFromString(type_str)) < 0) {
virReportError(VIR_ERR_XML_DETAIL,
_("unknown type value: %s"), type_str);
- goto cleanup;
+ return -1;
}
loader->type = type;
}
- ret = 0;
- cleanup:
- return ret;
+ return 0;
}
@@ -18505,7 +18379,6 @@ virDomainVcpuParse(virDomainDefPtr def,
size_t i;
unsigned int maxvcpus;
unsigned int vcpus;
- int ret = -1;
VIR_AUTOFREE(char *) tmp = NULL;
VIR_AUTOFREE(xmlNodePtr *) nodes = NULL;
@@ -18516,7 +18389,7 @@ virDomainVcpuParse(virDomainDefPtr def,
if (virStrToLong_ui(tmp, NULL, 10, &maxvcpus) < 0) {
virReportError(VIR_ERR_XML_ERROR, "%s",
_("maximum vcpus count must be an integer"));
- goto cleanup;
+ return -1;
}
VIR_FREE(tmp);
}
@@ -18525,7 +18398,7 @@ virDomainVcpuParse(virDomainDefPtr def,
if (virStrToLong_ui(tmp, NULL, 10, &vcpus) < 0) {
virReportError(VIR_ERR_XML_ERROR, "%s",
_("current vcpus count must be an integer"));
- goto cleanup;
+ return -1;
}
VIR_FREE(tmp);
} else {
@@ -18539,7 +18412,7 @@ virDomainVcpuParse(virDomainDefPtr def,
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("Unsupported CPU placement mode
'%s'"),
tmp);
- goto cleanup;
+ return -1;
}
VIR_FREE(tmp);
} else {
@@ -18550,12 +18423,12 @@ virDomainVcpuParse(virDomainDefPtr def,
tmp = virXMLPropString(vcpuNode, "cpuset");
if (tmp) {
if (virBitmapParse(tmp, &def->cpumask, VIR_DOMAIN_CPUMASK_LEN)
< 0)
- goto cleanup;
+ return -1;
if (virBitmapIsAllClear(def->cpumask)) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("Invalid value of 'cpuset': %s"),
tmp);
- goto cleanup;
+ return -1;
}
VIR_FREE(tmp);
@@ -18564,10 +18437,10 @@ virDomainVcpuParse(virDomainDefPtr def,
}
if (virDomainDefSetVcpusMax(def, maxvcpus, xmlopt) < 0)
- goto cleanup;
+ return -1;
if ((n = virXPathNodeSet("./vcpus/vcpu", ctxt, &nodes)) < 0)
- goto cleanup;
+ return -1;
if (n) {
/* if individual vcpu states are provided take them as master */
@@ -18583,7 +18456,7 @@ virDomainVcpuParse(virDomainDefPtr def,
virStrToLong_uip(tmp, NULL, 10, &id) < 0) {
virReportError(VIR_ERR_XML_ERROR, "%s",
_("missing or invalid vcpu id"));
- goto cleanup;
+ return -1;
}
VIR_FREE(tmp);
@@ -18592,7 +18465,7 @@ virDomainVcpuParse(virDomainDefPtr def,
virReportError(VIR_ERR_XML_ERROR,
_("vcpu id '%u' is out of range of maximum
"
"vcpu count"), id);
- goto cleanup;
+ return -1;
}
vcpu = virDomainDefGetVcpu(def, id);
@@ -18600,13 +18473,13 @@ virDomainVcpuParse(virDomainDefPtr def,
if (!(tmp = virXMLPropString(nodes[i], "enabled"))) {
virReportError(VIR_ERR_XML_ERROR, "%s",
_("missing vcpu enabled state"));
- goto cleanup;
+ return -1;
}
if ((state = virTristateBoolTypeFromString(tmp)) < 0) {
virReportError(VIR_ERR_XML_ERROR,
_("invalid vcpu 'enabled' value
'%s'"), tmp);
- goto cleanup;
+ return -1;
}
VIR_FREE(tmp);
@@ -18617,7 +18490,7 @@ virDomainVcpuParse(virDomainDefPtr def,
if ((hotpluggable = virTristateBoolTypeFromString(tmp)) < 0) {
virReportError(VIR_ERR_XML_ERROR,
_("invalid vcpu 'hotpluggable' value
'%s'"), tmp);
- goto cleanup;
+ return -1;
}
vcpu->hotpluggable = hotpluggable;
VIR_FREE(tmp);
@@ -18627,7 +18500,7 @@ virDomainVcpuParse(virDomainDefPtr def,
if (virStrToLong_uip(tmp, NULL, 10, &order) < 0) {
virReportError(VIR_ERR_XML_ERROR, "%s",
_("invalid vcpu order"));
- goto cleanup;
+ return -1;
}
vcpu->order = order;
VIR_FREE(tmp);
@@ -18635,13 +18508,10 @@ virDomainVcpuParse(virDomainDefPtr def,
}
} else {
if (virDomainDefSetVcpus(def, vcpus) < 0)
- goto cleanup;
+ return -1;
}
- ret = 0;
-
- cleanup:
- return ret;
+ return 0;
}
@@ -18650,7 +18520,6 @@ virDomainDefParseBootOptions(virDomainDefPtr def,
xmlXPathContextPtr ctxt)
{
char *name = NULL;
- int ret = -1;
size_t i;
int n;
VIR_AUTOFREE(xmlNodePtr *) nodes = NULL;
@@ -18673,34 +18542,34 @@ virDomainDefParseBootOptions(virDomainDefPtr def,
def->os.initgroup = virXPathString("string(./os/initgroup[1])",
ctxt);
if ((n = virXPathNodeSet("./os/initarg", ctxt, &nodes)) < 0)
- goto error;
+ return -1;
if (VIR_ALLOC_N(def->os.initargv, n+1) < 0)
- goto error;
+ return -1;
for (i = 0; i < n; i++) {
if (!nodes[i]->children ||
!nodes[i]->children->content) {
virReportError(VIR_ERR_XML_ERROR, "%s",
_("No data supplied for <initarg>
element"));
- goto error;
+ return -1;
}
if (VIR_STRDUP(def->os.initargv[i],
(const char*) nodes[i]->children->content) < 0)
- goto error;
+ return -1;
}
def->os.initargv[n] = NULL;
VIR_FREE(nodes);
if ((n = virXPathNodeSet("./os/initenv", ctxt, &nodes)) < 0)
- goto error;
+ return -1;
if (VIR_ALLOC_N(def->os.initenv, n+1) < 0)
- goto error;
+ return -1;
for (i = 0; i < n; i++) {
if (!(name = virXMLPropString(nodes[i], "name"))) {
virReportError(VIR_ERR_XML_ERROR, "%s",
_("No name supplied for <initenv>
element"));
- goto error;
+ return -1;
}
if (!nodes[i]->children ||
@@ -18708,16 +18577,16 @@ virDomainDefParseBootOptions(virDomainDefPtr def,
virReportError(VIR_ERR_XML_ERROR,
_("No value supplied for <initenv
name='%s'> element"),
name);
- goto error;
+ return -1;
}
if (VIR_ALLOC(def->os.initenv[i]) < 0)
- goto error;
+ return -1;
def->os.initenv[i]->name = name;
if (VIR_STRDUP(def->os.initenv[i]->value,
(const char*) nodes[i]->children->content) < 0)
- goto error;
+ return -1;
}
def->os.initenv[n] = NULL;
VIR_FREE(nodes);
@@ -18736,10 +18605,10 @@ virDomainDefParseBootOptions(virDomainDefPtr def,
def->os.root = virXPathString("string(./os/root[1])", ctxt);
if ((loader_node = virXPathNode("./os/loader[1]", ctxt))) {
if (VIR_ALLOC(def->os.loader) < 0)
- goto error;
+ return -1;
if (virDomainLoaderDefParseXML(loader_node, def->os.loader) < 0)
- goto error;
+ return -1;
def->os.loader->nvram =
virXPathString("string(./os/nvram[1])", ctxt);
def->os.loader->templt =
virXPathString("string(./os/nvram[1]/@template)", ctxt);
@@ -18748,12 +18617,12 @@ virDomainDefParseBootOptions(virDomainDefPtr def,
if (def->os.type == VIR_DOMAIN_OSTYPE_HVM) {
if ((n = virXPathNodeSet("./os/acpi/table", ctxt, &nodes)) < 0)
- goto error;
+ return -1;
if (n > 1) {
virReportError(VIR_ERR_XML_ERROR, "%s",
_("Only one acpi table is supported"));
- goto error;
+ return -1;
}
if (n == 1) {
@@ -18762,30 +18631,26 @@ virDomainDefParseBootOptions(virDomainDefPtr def,
if (!tmp) {
virReportError(VIR_ERR_XML_ERROR, "%s",
_("Missing acpi table type"));
- goto error;
+ return -1;
}
if (STREQ_NULLABLE(tmp, "slic")) {
VIR_FREE(tmp);
tmp = virXMLNodeContentString(nodes[0]);
def->os.slic_table = virFileSanitizePath(tmp);
- VIR_FREE(tmp);
} else {
virReportError(VIR_ERR_XML_ERROR,
_("Unknown acpi table type: %s"),
tmp);
- goto error;
+ return -1;
}
}
if (virDomainDefParseBootXML(ctxt, def) < 0)
- goto error;
+ return -1;
}
- ret = 0;
-
- error:
- return ret;
+ return 0;
}
@@ -18794,29 +18659,26 @@ virDomainResctrlParseVcpus(virDomainDefPtr def,
xmlNodePtr node,
virBitmapPtr *vcpus)
{
- int ret = -1;
VIR_AUTOFREE(char *) vcpus_str = NULL;
vcpus_str = virXMLPropString(node, "vcpus");
if (!vcpus_str) {
virReportError(VIR_ERR_XML_ERROR, _("Missing %s attribute
'vcpus'"),
node->name);
- goto cleanup;
+ return -1;
}
if (virBitmapParse(vcpus_str, vcpus, VIR_DOMAIN_CPUMASK_LEN) < 0) {
virReportError(VIR_ERR_XML_ERROR,
_("Invalid %s attribute 'vcpus' value
'%s'"),
node->name, vcpus_str);
- goto cleanup;
+ return -1;
}
/* We need to limit the bitmap to number of vCPUs. If there's nothing left,
* then we can just clean up and return 0 immediately */
virBitmapShrink(*vcpus, def->maxvcpus);
- ret = 0;
- cleanup:
- return ret;
+ return 0;
}
@@ -19219,7 +19081,6 @@ virDomainDefParseCaps(virDomainDefPtr def,
virCapsPtr caps,
unsigned int flags)
{
- int ret = -1;
VIR_AUTOFREE(char *) virttype = NULL;
VIR_AUTOFREE(char *) arch = NULL;
VIR_AUTOFREE(char *) ostype = NULL;
@@ -19237,12 +19098,12 @@ virDomainDefParseCaps(virDomainDefPtr def,
if (!virttype) {
virReportError(VIR_ERR_INTERNAL_ERROR,
"%s", _("missing domain type attribute"));
- goto cleanup;
+ return -1;
}
if ((def->virtType = virDomainVirtTypeFromString(virttype)) < 0) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("invalid domain type %s"), virttype);
- goto cleanup;
+ return -1;
}
if (!ostype) {
@@ -19251,13 +19112,13 @@ virDomainDefParseCaps(virDomainDefPtr def,
} else {
virReportError(VIR_ERR_XML_ERROR, "%s",
_("an os <type> must be specified"));
- goto cleanup;
+ return -1;
}
} else {
if ((def->os.type = virDomainOSTypeFromString(ostype)) < 0) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("unknown OS type '%s'"), ostype);
- goto cleanup;
+ return -1;
}
}
@@ -19274,7 +19135,7 @@ virDomainDefParseCaps(virDomainDefPtr def,
if (arch && !(def->os.arch = virArchFromString(arch))) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("Unknown architecture %s"), arch);
- goto cleanup;
+ return -1;
}
if (!(capsdata = virCapabilitiesDomainDataLookup(caps, def->os.type,
@@ -19282,19 +19143,17 @@ virDomainDefParseCaps(virDomainDefPtr def,
def->virtType,
NULL, NULL))) {
if (!(flags & VIR_DOMAIN_DEF_PARSE_SKIP_VALIDATE))
- goto cleanup;
+ return -1;
virResetLastError();
} else {
if (!def->os.arch)
def->os.arch = capsdata->arch;
if ((!def->os.machine &&
VIR_STRDUP(def->os.machine, capsdata->machinetype) < 0))
- goto cleanup;
+ return -1;
}
- ret = 0;
- cleanup:
- return ret;
+ return 0;
}
@@ -26138,7 +25997,6 @@ static int
virDomainMemorySourceDefFormat(virBufferPtr buf,
virDomainMemoryDefPtr def)
{
- int ret = -1;
VIR_AUTOFREE(char *) bitmap = NULL;
if (!def->pagesize && !def->sourceNodes &&
!def->nvdimmPath)
@@ -26151,7 +26009,7 @@ virDomainMemorySourceDefFormat(virBufferPtr buf,
case VIR_DOMAIN_MEMORY_MODEL_DIMM:
if (def->sourceNodes) {
if (!(bitmap = virBitmapFormat(def->sourceNodes)))
- goto cleanup;
+ return -1;
virBufferAsprintf(buf, "<nodemask>%s</nodemask>\n",
bitmap);
}
@@ -26180,10 +26038,7 @@ virDomainMemorySourceDefFormat(virBufferPtr buf,
virBufferAdjustIndent(buf, -2);
virBufferAddLit(buf, "</source>\n");
- ret = 0;
-
- cleanup:
- return ret;
+ return 0;
}
@@ -27603,7 +27458,6 @@ virDomainCpuDefFormat(virBufferPtr buf,
{
virDomainVcpuDefPtr vcpu;
size_t i;
- int ret = -1;
VIR_AUTOFREE(char *) cpumask = NULL;
virBufferAddLit(buf, "<vcpu");
@@ -27612,7 +27466,7 @@ virDomainCpuDefFormat(virBufferPtr buf,
if (def->cpumask && !virBitmapIsAllSet(def->cpumask)) {
if ((cpumask = virBitmapFormat(def->cpumask)) == NULL)
- goto cleanup;
+ return -1;
virBufferAsprintf(buf, " cpuset='%s'", cpumask);
}
if (virDomainDefHasVcpusOffline(def))
@@ -27640,10 +27494,7 @@ virDomainCpuDefFormat(virBufferPtr buf,
virBufferAddLit(buf, "</vcpus>\n");
}
- ret = 0;
-
- cleanup:
- return ret;
+ return 0;
}
@@ -28839,29 +28690,25 @@ virDomainSaveXML(const char *configDir,
const char *xml)
{
char uuidstr[VIR_UUID_STRING_BUFLEN];
- int ret = -1;
VIR_AUTOFREE(char *) configFile = NULL;
if (!configDir)
return 0;
if ((configFile = virDomainConfigFile(configDir, def->name)) == NULL)
- goto cleanup;
+ return -1;
if (virFileMakePath(configDir) < 0) {
virReportSystemError(errno,
_("cannot create config directory '%s'"),
configDir);
- goto cleanup;
+ return -1;
}
virUUIDFormat(def->uuid, uuidstr);
- ret = virXMLSaveFile(configFile,
- virXMLPickShellSafeComment(def->name, uuidstr),
"edit",
- xml);
-
- cleanup:
- return ret;
+ return virXMLSaveFile(configFile,
+ virXMLPickShellSafeComment(def->name, uuidstr),
"edit",
+ xml);
}
int
@@ -28869,18 +28716,12 @@ virDomainSaveConfig(const char *configDir,
virCapsPtr caps,
virDomainDefPtr def)
{
- int ret = -1;
VIR_AUTOFREE(char *) xml = NULL;
if (!(xml = virDomainDefFormat(def, caps, VIR_DOMAIN_DEF_FORMAT_SECURE)))
- goto cleanup;
-
- if (virDomainSaveXML(configDir, def, xml))
- goto cleanup;
+ return -1;
- ret = 0;
- cleanup:
- return ret;
+ return virDomainSaveXML(configDir, def, xml);
}
int
@@ -28895,18 +28736,12 @@ virDomainSaveStatus(virDomainXMLOptionPtr xmlopt,
VIR_DOMAIN_DEF_FORMAT_PCI_ORIG_STATES |
VIR_DOMAIN_DEF_FORMAT_CLOCK_ADJUST);
- int ret = -1;
VIR_AUTOFREE(char *) xml = NULL;
if (!(xml = virDomainObjFormat(xmlopt, obj, caps, flags)))
- goto cleanup;
-
- if (virDomainSaveXML(statusDir, obj->def, xml))
- goto cleanup;
+ return -1;
- ret = 0;
- cleanup:
- return ret;
+ return virDomainSaveXML(statusDir, obj->def, xml);
}
@@ -28915,15 +28750,14 @@ virDomainDeleteConfig(const char *configDir,
const char *autostartDir,
virDomainObjPtr dom)
{
- int ret = -1;
VIR_AUTOFREE(char *) configFile = NULL;
VIR_AUTOFREE(char *) autostartLink = NULL;
if ((configFile = virDomainConfigFile(configDir, dom->def->name)) == NULL)
- goto cleanup;
+ return -1;
if ((autostartLink = virDomainConfigFile(autostartDir,
dom->def->name)) == NULL)
- goto cleanup;
+ return -1;
/* Not fatal if this doesn't work */
unlink(autostartLink);
@@ -28934,13 +28768,10 @@ virDomainDeleteConfig(const char *configDir,
virReportSystemError(errno,
_("cannot remove config %s"),
configFile);
- goto cleanup;
+ return -1;
}
- ret = 0;
-
- cleanup:
- return ret;
+ return 0;
}
char
@@ -29202,20 +29033,19 @@ virDomainDiskDefForeachPath(virDomainDiskDefPtr disk,
virDomainDiskDefPathIterator iter,
void *opaque)
{
- int ret = -1;
size_t depth = 0;
virStorageSourcePtr tmp;
VIR_AUTOFREE(char *) brokenRaw = NULL;
if (!ignoreOpenFailure) {
if (virStorageFileChainGetBroken(disk->src, &brokenRaw) < 0)
- goto cleanup;
+ return -1;
if (brokenRaw) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("unable to visit backing chain file %s"),
brokenRaw);
- goto cleanup;
+ return -1;
}
}
@@ -29224,16 +29054,13 @@ virDomainDiskDefForeachPath(virDomainDiskDefPtr disk,
if (virStorageSourceIsLocalStorage(tmp) &&
tmp->path) {
if (iter(disk, tmp->path, depth, opaque) < 0)
- goto cleanup;
+ return -1;
}
depth++;
}
- ret = 0;
-
- cleanup:
- return ret;
+ return 0;
}
@@ -29248,7 +29075,6 @@ virDomainDefCopy(virDomainDefPtr src,
void *parseOpaque,
bool migratable)
{
- virDomainDefPtr ret;
unsigned int format_flags = VIR_DOMAIN_DEF_FORMAT_SECURE;
unsigned int parse_flags = VIR_DOMAIN_DEF_PARSE_INACTIVE |
VIR_DOMAIN_DEF_PARSE_SKIP_VALIDATE;
@@ -29261,9 +29087,7 @@ virDomainDefCopy(virDomainDefPtr src,
if (!(xml = virDomainDefFormat(src, caps, format_flags)))
return NULL;
- ret = virDomainDefParseString(xml, caps, xmlopt, parseOpaque, parse_flags);
-
- return ret;
+ return virDomainDefParseString(xml, caps, xmlopt, parseOpaque, parse_flags);
}
virDomainDefPtr
@@ -29687,7 +29511,6 @@ virDomainDeviceDefCopy(virDomainDeviceDefPtr src,
virCapsPtr caps,
virDomainXMLOptionPtr xmlopt)
{
- virDomainDeviceDefPtr ret = NULL;
virBuffer buf = VIR_BUFFER_INITIALIZER;
int flags = VIR_DOMAIN_DEF_FORMAT_INACTIVE | VIR_DOMAIN_DEF_FORMAT_SECURE;
int rc = -1;
@@ -29767,19 +29590,16 @@ virDomainDeviceDefCopy(virDomainDeviceDefPtr src,
_("Copying definition of '%d' type "
"is not implemented yet."),
src->type);
- goto cleanup;
+ return NULL;
}
if (rc < 0)
- goto cleanup;
+ return NULL;
xmlStr = virBufferContentAndReset(&buf);
- ret = virDomainDeviceDefParse(xmlStr, def, caps, xmlopt,
- VIR_DOMAIN_DEF_PARSE_INACTIVE |
- VIR_DOMAIN_DEF_PARSE_SKIP_VALIDATE);
-
- cleanup:
- return ret;
+ return virDomainDeviceDefParse(xmlStr, def, caps, xmlopt,
+ VIR_DOMAIN_DEF_PARSE_INACTIVE |
+ VIR_DOMAIN_DEF_PARSE_SKIP_VALIDATE);
}
@@ -30152,11 +29972,10 @@ virDomainDefGetShortName(const virDomainDef *def)
virReportSystemError(errno, "%s",
_("Cannot convert wide character string "
"back to multi-byte domain name"));
- goto cleanup;
+ return NULL;
}
ignore_value(virAsprintf(&ret, "%d-%s", def->id, shortname));
- cleanup:
return ret;
}
--
2.20.1