The recent cleanups allow us to clean up the code a bit. Signed-off-by: Ján Tomko <jto...@redhat.com> --- src/qemu/qemu_command.c | 741 +++++++++++++++------------------------- 1 file changed, 274 insertions(+), 467 deletions(-)
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index a4df133ca0..0e9bd77f62 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -202,7 +202,6 @@ static int qemuBuildMasterKeyCommandLine(virCommandPtr cmd, qemuDomainObjPrivatePtr priv) { - int ret = -1; VIR_AUTOFREE(char *) alias = NULL; VIR_AUTOFREE(char *) path = NULL; VIR_AUTOCLEAN(virBuffer) buf = VIR_BUFFER_INITIALIZER; @@ -225,17 +224,14 @@ qemuBuildMasterKeyCommandLine(virCommandPtr cmd, * existence of socket files before using. */ if (!(path = qemuDomainGetMasterKeyFilePath(priv->libDir))) - goto cleanup; + return -1; virCommandAddArg(cmd, "-object"); virBufferAsprintf(&buf, "secret,id=%s,format=raw,file=", alias); virQEMUBuildBufferEscapeComma(&buf, path); virCommandAddArgBuffer(cmd, &buf); - ret = 0; - - cleanup: - return ret; + return 0; } @@ -298,7 +294,6 @@ qemuBuildDeviceAddressStr(virBufferPtr buf, virDomainDeviceInfoPtr info, virQEMUCapsPtr qemuCaps) { - int ret = -1; VIR_AUTOFREE(char *) devStr = NULL; const char *contAlias = NULL; bool contIsPHB = false; @@ -308,7 +303,7 @@ qemuBuildDeviceAddressStr(virBufferPtr buf, size_t i; if (!(devStr = virPCIDeviceAddressAsString(&info->addr.pci))) - goto cleanup; + return -1; for (i = 0; i < domainDef->ncontrollers; i++) { virDomainControllerDefPtr cont = domainDef->controllers[i]; @@ -324,7 +319,7 @@ qemuBuildDeviceAddressStr(virBufferPtr buf, "controller with index %u required " "for device at address %s"), info->addr.pci.bus, devStr); - goto cleanup; + return -1; } if (virDomainDeviceAliasIsUserAlias(contAlias)) { @@ -350,7 +345,7 @@ qemuBuildDeviceAddressStr(virBufferPtr buf, "controller with index %u required " "for device at address %s"), info->addr.pci.bus, devStr); - goto cleanup; + return -1; } if (contIsPHB && contTargetIndex > 0) { @@ -376,7 +371,7 @@ qemuBuildDeviceAddressStr(virBufferPtr buf, if (!(contAlias = virDomainControllerAliasFind(domainDef, VIR_DOMAIN_CONTROLLER_TYPE_USB, info->addr.usb.bus))) - goto cleanup; + return -1; virBufferAsprintf(buf, ",bus=%s.0", contAlias); if (virDomainUSBAddressPortIsValid(info->addr.usb.port)) { virBufferAddLit(buf, ",port="); @@ -397,9 +392,7 @@ qemuBuildDeviceAddressStr(virBufferPtr buf, info->addr.isa.irq); } - ret = 0; - cleanup: - return ret; + return 0; } @@ -733,22 +726,18 @@ qemuBuildObjectSecretCommandLine(virCommandPtr cmd, qemuDomainSecretInfoPtr secinfo) { VIR_AUTOCLEAN(virBuffer) buf = VIR_BUFFER_INITIALIZER; - int ret = -1; VIR_AUTOPTR(virJSONValue) props = NULL; if (qemuBuildSecretInfoProps(secinfo, &props) < 0) return -1; if (virQEMUBuildObjectCommandlineFromJSON(&buf, props) < 0) - goto cleanup; + return -1; virCommandAddArg(cmd, "-object"); virCommandAddArgBuffer(cmd, &buf); - ret = 0; - - cleanup: - return ret; + return 0; } @@ -929,23 +918,19 @@ qemuBuildTLSx509CommandLine(virCommandPtr cmd, virQEMUCapsPtr qemuCaps) { VIR_AUTOCLEAN(virBuffer) buf = VIR_BUFFER_INITIALIZER; - int ret = -1; VIR_AUTOPTR(virJSONValue) props = NULL; if (qemuBuildTLSx509BackendProps(tlspath, isListen, verifypeer, alias, certEncSecretAlias, qemuCaps, &props) < 0) - goto cleanup; + return -1; if (virQEMUBuildObjectCommandlineFromJSON(&buf, props) < 0) - goto cleanup; + return -1; virCommandAddArg(cmd, "-object"); virCommandAddArgBuffer(cmd, &buf); - ret = 0; - - cleanup: - return ret; + return 0; } @@ -954,22 +939,18 @@ qemuBuildNetworkDriveURI(virStorageSourcePtr src, qemuDomainSecretInfoPtr secinfo) { VIR_AUTOPTR(virURI) uri = NULL; - char *ret = NULL; if (!(uri = qemuBlockStorageSourceGetURI(src))) - goto cleanup; + return NULL; if (src->hosts->socket && virAsprintf(&uri->query, "socket=%s", src->hosts->socket) < 0) - goto cleanup; + return NULL; if (qemuBuildGeneralSecinfoURI(uri, secinfo) < 0) - goto cleanup; - - ret = virURIFormat(uri); + return NULL; - cleanup: - return ret; + return virURIFormat(uri); } @@ -977,9 +958,9 @@ static char * qemuBuildNetworkDriveStr(virStorageSourcePtr src, qemuDomainSecretInfoPtr secinfo) { - char *ret = NULL; VIR_AUTOCLEAN(virBuffer) buf = VIR_BUFFER_INITIALIZER; size_t i; + char *ret = NULL; switch ((virStorageNetProtocol) src->protocol) { case VIR_STORAGE_NET_PROTOCOL_NBD: @@ -987,7 +968,7 @@ qemuBuildNetworkDriveStr(virStorageSourcePtr src, virReportError(VIR_ERR_INTERNAL_ERROR, _("protocol '%s' accepts only one host"), virStorageNetProtocolTypeToString(src->protocol)); - goto cleanup; + return NULL; } if (!((src->hosts->name && strchr(src->hosts->name, ':')) || @@ -1010,7 +991,7 @@ qemuBuildNetworkDriveStr(virStorageSourcePtr src, virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("socket attribute required for " "unix transport")); - goto cleanup; + return NULL; } virBufferAsprintf(&buf, "unix:%s", src->hosts->socket); @@ -1020,17 +1001,16 @@ qemuBuildNetworkDriveStr(virStorageSourcePtr src, virReportError(VIR_ERR_INTERNAL_ERROR, _("nbd does not support transport '%s'"), virStorageNetHostTransportTypeToString(src->hosts->transport)); - goto cleanup; + return NULL; } if (src->path) virBufferAsprintf(&buf, ":exportname=%s", src->path); if (virBufferCheckError(&buf) < 0) - goto cleanup; + return NULL; - ret = virBufferContentAndReset(&buf); - goto cleanup; + return virBufferContentAndReset(&buf); } /* NBD code uses URI formatting scheme as others in some cases */ ret = qemuBuildNetworkDriveURI(src, secinfo); @@ -1050,21 +1030,21 @@ qemuBuildNetworkDriveStr(virStorageSourcePtr src, if (!src->path) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("missing disk source for 'sheepdog' protocol")); - goto cleanup; + return NULL; } if (src->nhosts == 0) { if (virAsprintf(&ret, "sheepdog:%s", src->path) < 0) - goto cleanup; + return NULL; } else if (src->nhosts == 1) { if (virAsprintf(&ret, "sheepdog:%s:%u:%s", src->hosts->name, src->hosts->port, src->path) < 0) - goto cleanup; + return NULL; } else { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("protocol 'sheepdog' accepts up to one host")); - goto cleanup; + return NULL; } break; @@ -1074,7 +1054,7 @@ qemuBuildNetworkDriveStr(virStorageSourcePtr src, virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("':' not allowed in RBD source volume name '%s'"), src->path); - goto cleanup; + return NULL; } virBufferStrcat(&buf, "rbd:", src->volume, "/", src->path, NULL); @@ -1083,7 +1063,7 @@ qemuBuildNetworkDriveStr(virStorageSourcePtr src, virBufferEscape(&buf, '\\', ":", "@%s", src->snapshot); if (qemuBuildRBDSecinfoURI(&buf, secinfo) < 0) - goto cleanup; + return NULL; if (src->nhosts > 0) { virBufferAddLit(&buf, ":mon_host="); @@ -1107,7 +1087,7 @@ qemuBuildNetworkDriveStr(virStorageSourcePtr src, virBufferEscape(&buf, '\\', ":", ":conf=%s", src->configFile); if (virBufferCheckError(&buf) < 0) - goto cleanup; + return NULL; ret = virBufferContentAndReset(&buf); break; @@ -1115,23 +1095,21 @@ qemuBuildNetworkDriveStr(virStorageSourcePtr src, case VIR_STORAGE_NET_PROTOCOL_VXHS: virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("VxHS protocol does not support URI syntax")); - goto cleanup; + return NULL; case VIR_STORAGE_NET_PROTOCOL_SSH: virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("'ssh' protocol is not yet supported")); - goto cleanup; + return NULL; case VIR_STORAGE_NET_PROTOCOL_LAST: case VIR_STORAGE_NET_PROTOCOL_NONE: virReportError(VIR_ERR_INTERNAL_ERROR, _("Unexpected network protocol '%s'"), virStorageNetProtocolTypeToString(src->protocol)); - goto cleanup; + return NULL; } - cleanup: - return ret; } @@ -1142,7 +1120,6 @@ qemuGetDriveSourceString(virStorageSourcePtr src, char **source) { int actualType = virStorageSourceGetActualType(src); - int ret = -1; *source = NULL; @@ -1155,13 +1132,13 @@ qemuGetDriveSourceString(virStorageSourcePtr src, case VIR_STORAGE_TYPE_FILE: case VIR_STORAGE_TYPE_DIR: if (VIR_STRDUP(*source, src->path) < 0) - goto cleanup; + return -1; break; case VIR_STORAGE_TYPE_NETWORK: if (!(*source = qemuBuildNetworkDriveStr(src, secinfo))) - goto cleanup; + return -1; break; case VIR_STORAGE_TYPE_VOLUME: @@ -1170,10 +1147,7 @@ qemuGetDriveSourceString(virStorageSourcePtr src, break; } - ret = 0; - - cleanup: - return ret; + return 0; } @@ -1510,18 +1484,16 @@ qemuCheckDiskConfig(virDomainDiskDefPtr disk, bool qemuCheckFips(void) { - bool ret = false; - if (virFileExists("/proc/sys/crypto/fips_enabled")) { VIR_AUTOFREE(char *) buf = NULL; if (virFileReadAll("/proc/sys/crypto/fips_enabled", 10, &buf) < 0) - return ret; + return false; if (STREQ(buf, "1\n")) - ret = true; + return true; } - return ret; + return false; } @@ -1635,7 +1607,6 @@ qemuBuildDriveSourceStr(virDomainDiskDefPtr disk, VIR_AUTOPTR(virJSONValue) srcprops = NULL; VIR_AUTOFREE(char *) source = NULL; bool rawluks = false; - int ret = -1; if (srcpriv) { secinfo = srcpriv->secinfo; @@ -1644,19 +1615,18 @@ qemuBuildDriveSourceStr(virDomainDiskDefPtr disk, if (qemuDiskSourceNeedsProps(disk->src, qemuCaps) && !(srcprops = qemuDiskSourceGetProps(disk->src))) - goto cleanup; + return -1; if (!srcprops && qemuGetDriveSourceString(disk->src, secinfo, &source) < 0) - goto cleanup; + return -1; /* nothing to format if the drive is empty */ if (!(source || srcprops) || ((disk->device == VIR_DOMAIN_DISK_DEVICE_FLOPPY || disk->device == VIR_DOMAIN_DISK_DEVICE_CDROM) && disk->tray_status == VIR_DOMAIN_DISK_TRAY_OPEN)) { - ret = 0; - goto cleanup; + return 0; } if (actualType == VIR_STORAGE_TYPE_BLOCK && @@ -1665,7 +1635,7 @@ qemuBuildDriveSourceStr(virDomainDiskDefPtr disk, disk->src->type == VIR_STORAGE_TYPE_VOLUME ? _("tray status 'open' is invalid for block type volume") : _("tray status 'open' is invalid for block type disk")); - goto cleanup; + return -1; } if (source) { @@ -1688,10 +1658,10 @@ qemuBuildDriveSourceStr(virDomainDiskDefPtr disk, virBufferAsprintf(buf, ",file.debug=%d", disk->src->debugLevel); if (qemuBuildDriveSourcePR(buf, disk) < 0) - goto cleanup; + return -1; } else { if (!(source = virQEMUBuildDriveCommandlineFromJSON(srcprops))) - goto cleanup; + return -1; virBufferAdd(buf, source, -1); } @@ -1716,10 +1686,7 @@ qemuBuildDriveSourceStr(virDomainDiskDefPtr disk, virBufferAsprintf(buf, "format=%s,", qemuformat); } - ret = 0; - - cleanup: - return ret; + return 0; } @@ -2392,7 +2359,6 @@ qemuBuildFloppyCommandLineControllerOptions(virCommandPtr cmd, VIR_AUTOFREE(char *) backendStr = NULL; VIR_AUTOFREE(char *) bootindexStr = NULL; size_t i; - int ret = -1; virBufferAddLit(&fdc_opts, "isa-fdc,"); @@ -2418,16 +2384,16 @@ qemuBuildFloppyCommandLineControllerOptions(virCommandPtr cmd, if (bootindex && virAsprintf(&bootindexStr, "bootindex%c=%u", driveLetter, bootindex) < 0) - goto cleanup; + return -1; /* with -blockdev we setup the floppy device and it's backend with -device */ if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_BLOCKDEV)) { if (qemuDomainDiskGetBackendAlias(disk, qemuCaps, &backendAlias) < 0) - goto cleanup; + return -1; if (backendAlias && virAsprintf(&backendStr, "drive%c=%s", driveLetter, backendAlias) < 0) - goto cleanup; + return -1; } if (!explicitfdc) { @@ -2457,10 +2423,7 @@ qemuBuildFloppyCommandLineControllerOptions(virCommandPtr cmd, virCommandAddArgBuffer(cmd, &fdc_opts); } - ret = 0; - - cleanup: - return ret; + return 0; } @@ -2922,7 +2885,7 @@ qemuBuildControllerDevStr(const virDomainDef *domainDef, case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_VIRTIO_NON_TRANSITIONAL: if (qemuBuildVirtioDevStr(&buf, "virtio-scsi", qemuCaps, VIR_DOMAIN_DEVICE_CONTROLLER, def) < 0) { - goto error; + return -1; } if (def->iothread) { @@ -2931,7 +2894,7 @@ qemuBuildControllerDevStr(const virDomainDef *domainDef, } if (qemuBuildVirtioOptionsStr(&buf, def->virtio, qemuCaps) < 0) - goto error; + return -1; break; case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_LSILOGIC: virBufferAddLit(&buf, "lsi"); @@ -2951,13 +2914,13 @@ qemuBuildControllerDevStr(const virDomainDef *domainDef, virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("Unsupported controller model: %s"), virDomainControllerModelSCSITypeToString(def->model)); - goto error; + return -1; case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_DEFAULT: case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_LAST: virReportError(VIR_ERR_INTERNAL_ERROR, _("Unexpected SCSI controller model %d"), def->model); - goto error; + return -1; } virBufferAsprintf(&buf, ",id=%s", def->info.alias); break; @@ -2965,7 +2928,7 @@ qemuBuildControllerDevStr(const virDomainDef *domainDef, case VIR_DOMAIN_CONTROLLER_TYPE_VIRTIO_SERIAL: if (qemuBuildVirtioDevStr(&buf, "virtio-serial", qemuCaps, VIR_DOMAIN_DEVICE_CONTROLLER, def) < 0) { - goto error; + return -1; } virBufferAsprintf(&buf, ",id=%s", def->info.alias); @@ -2978,7 +2941,7 @@ qemuBuildControllerDevStr(const virDomainDef *domainDef, def->opts.vioserial.vectors); } if (qemuBuildVirtioOptionsStr(&buf, def->virtio, qemuCaps) < 0) - goto error; + return -1; break; case VIR_DOMAIN_CONTROLLER_TYPE_CCID: @@ -2991,7 +2954,7 @@ qemuBuildControllerDevStr(const virDomainDef *domainDef, case VIR_DOMAIN_CONTROLLER_TYPE_USB: if (qemuBuildUSBControllerDevStr(domainDef, def, qemuCaps, &buf) == -1) - goto error; + return -1; break; @@ -3003,7 +2966,7 @@ qemuBuildControllerDevStr(const virDomainDef *domainDef, if (def->model == VIR_DOMAIN_CONTROLLER_MODEL_PCI_ROOT && pciopts->modelName == VIR_DOMAIN_CONTROLLER_PCI_MODEL_NAME_SPAPR_PCI_HOST_BRIDGE && pciopts->targetIndex == 0) { - goto done; + return 0; } if (!modelName) { @@ -3051,13 +3014,13 @@ qemuBuildControllerDevStr(const virDomainDef *domainDef, case VIR_DOMAIN_CONTROLLER_MODEL_PCIE_ROOT: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("Unsupported PCI Express root controller")); - goto error; + return -1; case VIR_DOMAIN_CONTROLLER_MODEL_PCI_DEFAULT: case VIR_DOMAIN_CONTROLLER_MODEL_PCI_LAST: virReportError(VIR_ERR_INTERNAL_ERROR, _("Unexpected PCI controller model %d"), def->model); - goto error; + return -1; } break; } @@ -3069,7 +3032,7 @@ qemuBuildControllerDevStr(const virDomainDef *domainDef, virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("Unsupported controller type: %s"), virDomainControllerTypeToString(def->type)); - goto error; + return -1; } if (def->queues) @@ -3084,17 +3047,13 @@ qemuBuildControllerDevStr(const virDomainDef *domainDef, qemuBuildIoEventFdStr(&buf, def->ioeventfd, qemuCaps); if (qemuBuildDeviceAddressStr(&buf, domainDef, &def->info, qemuCaps) < 0) - goto error; + return -1; - done: if (virBufferCheckError(&buf) < 0) - goto error; + return -1; *devstr = virBufferContentAndReset(&buf); return 0; - - error: - return -1; } @@ -3198,7 +3157,6 @@ qemuBuildControllersByTypeCommandLine(virCommandPtr cmd, virQEMUCapsPtr qemuCaps, virDomainControllerType type) { - int ret = -1; size_t i; for (i = 0; i < def->ncontrollers; i++) { @@ -3237,20 +3195,18 @@ qemuBuildControllersByTypeCommandLine(virCommandPtr cmd, } if (qemuBuildControllerDevStr(def, cont, qemuCaps, &devstr) < 0) - goto cleanup; + return -1; if (devstr) { if (qemuCommandAddExtDevice(cmd, &cont->info) < 0) - goto cleanup; + return -1; virCommandAddArg(cmd, "-device"); virCommandAddArg(cmd, devstr); } } - ret = 0; - cleanup: - return ret; + return 0; } @@ -3286,20 +3242,16 @@ qemuBuildControllersCommandLine(virCommandPtr cmd, VIR_DOMAIN_CONTROLLER_TYPE_SATA, VIR_DOMAIN_CONTROLLER_TYPE_VIRTIO_SERIAL, }; - int ret = -1; for (i = 0; i < ARRAY_CARDINALITY(contOrder); i++) { if (qemuBuildControllersByTypeCommandLine(cmd, def, qemuCaps, contOrder[i]) < 0) - goto cleanup; + return -1; } if (qemuBuildLegacyUSBControllerCommandLine(cmd, def) < 0) - goto cleanup; - - ret = 0; + return -1; - cleanup: - return ret; + return 0; } @@ -3681,7 +3633,6 @@ qemuBuildMemoryDimmBackendStr(virBufferPtr buf, { VIR_AUTOPTR(virJSONValue) props = NULL; VIR_AUTOFREE(char *) alias = NULL; - int ret = -1; if (!mem->info.alias) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", @@ -3690,20 +3641,16 @@ qemuBuildMemoryDimmBackendStr(virBufferPtr buf, } if (virAsprintf(&alias, "mem%s", mem->info.alias) < 0) - goto cleanup; + return -1; if (qemuBuildMemoryBackendProps(&props, alias, cfg, priv, def, mem, true) < 0) - goto cleanup; + return -1; if (virQEMUBuildObjectCommandlineFromJSON(buf, props) < 0) - goto cleanup; - - ret = 0; - - cleanup: + return -1; - return ret; + return 0; } @@ -4121,20 +4068,17 @@ qemuBuildWatchdogDevStr(const virDomainDef *def, if (!model) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("missing watchdog model")); - goto error; + return NULL; } virBufferAsprintf(&buf, "%s,id=%s", model, dev->info.alias); if (qemuBuildDeviceAddressStr(&buf, def, &dev->info, qemuCaps) < 0) - goto error; + return NULL; if (virBufferCheckError(&buf) < 0) - goto error; + return NULL; return virBufferContentAndReset(&buf); - - error: - return NULL; } @@ -4194,12 +4138,12 @@ qemuBuildMemballoonCommandLine(virCommandPtr cmd, if (qemuBuildVirtioDevStr(&buf, "virtio-balloon", qemuCaps, VIR_DOMAIN_DEVICE_MEMBALLOON, def->memballoon) < 0) { - goto error; + return -1; } virBufferAsprintf(&buf, ",id=%s", def->memballoon->info.alias); if (qemuBuildDeviceAddressStr(&buf, def, &def->memballoon->info, qemuCaps) < 0) - goto error; + return -1; if (def->memballoon->autodeflate != VIR_TRISTATE_SWITCH_ABSENT) { virBufferAsprintf(&buf, ",deflate-on-oom=%s", @@ -4207,17 +4151,14 @@ qemuBuildMemballoonCommandLine(virCommandPtr cmd, } if (qemuBuildVirtioOptionsStr(&buf, def->memballoon->virtio, qemuCaps) < 0) - goto error; + return -1; if (qemuCommandAddExtDevice(cmd, &def->memballoon->info) < 0) - goto error; + return -1; virCommandAddArg(cmd, "-device"); virCommandAddArgBuffer(cmd, &buf); return 0; - - error: - return -1; } @@ -4233,16 +4174,13 @@ qemuBuildNVRAMDevStr(virDomainNVRAMDefPtr dev) } else { virReportError(VIR_ERR_XML_ERROR, "%s", _("nvram address type must be spaprvio")); - goto error; + return NULL; } if (virBufferCheckError(&buf) < 0) - goto error; + return NULL; return virBufferContentAndReset(&buf); - - error: - return NULL; } @@ -4289,31 +4227,31 @@ qemuBuildVirtioInputDevStr(const virDomainDef *def, case VIR_DOMAIN_INPUT_TYPE_MOUSE: if (qemuBuildVirtioDevStr(&buf, "virtio-mouse", qemuCaps, VIR_DOMAIN_DEVICE_INPUT, dev) < 0) { - goto error; + return NULL; } break; case VIR_DOMAIN_INPUT_TYPE_TABLET: if (qemuBuildVirtioDevStr(&buf, "virtio-tablet", qemuCaps, VIR_DOMAIN_DEVICE_INPUT, dev) < 0) { - goto error; + return NULL; } break; case VIR_DOMAIN_INPUT_TYPE_KBD: if (qemuBuildVirtioDevStr(&buf, "virtio-keyboard", qemuCaps, VIR_DOMAIN_DEVICE_INPUT, dev) < 0) { - goto error; + return NULL; } break; case VIR_DOMAIN_INPUT_TYPE_PASSTHROUGH: if (qemuBuildVirtioDevStr(&buf, "virtio-input-host", qemuCaps, VIR_DOMAIN_DEVICE_INPUT, dev) < 0) { - goto error; + return NULL; } break; case VIR_DOMAIN_INPUT_TYPE_LAST: default: virReportEnumRangeError(virDomainInputType, dev->type); - goto error; + return NULL; } virBufferAsprintf(&buf, ",id=%s", dev->info.alias); @@ -4324,18 +4262,15 @@ qemuBuildVirtioInputDevStr(const virDomainDef *def, } if (qemuBuildDeviceAddressStr(&buf, def, &dev->info, qemuCaps) < 0) - goto error; + return NULL; if (qemuBuildVirtioOptionsStr(&buf, dev->virtio, qemuCaps) < 0) - goto error; + return NULL; if (virBufferCheckError(&buf) < 0) - goto error; + return NULL; return virBufferContentAndReset(&buf); - - error: - return NULL; } static char * @@ -4357,22 +4292,19 @@ qemuBuildUSBInputDevStr(const virDomainDef *def, virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("usb keyboard is not supported by this " "QEMU binary")); - goto error; + return NULL; } virBufferAsprintf(&buf, "usb-kbd,id=%s", dev->info.alias); break; } if (qemuBuildDeviceAddressStr(&buf, def, &dev->info, qemuCaps) < 0) - goto error; + return NULL; if (virBufferCheckError(&buf) < 0) - goto error; + return NULL; return virBufferContentAndReset(&buf); - - error: - return NULL; } @@ -4449,7 +4381,7 @@ qemuBuildSoundDevStr(const virDomainDef *def, virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("usb-audio controller is not supported " "by this QEMU binary")); - goto error; + return NULL; } break; case VIR_DOMAIN_SOUND_MODEL_ICH9: @@ -4458,7 +4390,7 @@ qemuBuildSoundDevStr(const virDomainDef *def, virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("The ich9-intel-hda audio controller " "is not supported in this QEMU binary")); - goto error; + return NULL; } break; case VIR_DOMAIN_SOUND_MODEL_SB16: @@ -4469,20 +4401,17 @@ qemuBuildSoundDevStr(const virDomainDef *def, virReportError(VIR_ERR_INTERNAL_ERROR, _("sound card model '%s' is not supported by qemu"), virDomainSoundModelTypeToString(sound->model)); - goto error; + return NULL; } virBufferAsprintf(&buf, "%s,id=%s", model, sound->info.alias); if (qemuBuildDeviceAddressStr(&buf, def, &sound->info, qemuCaps) < 0) - goto error; + return NULL; if (virBufferCheckError(&buf) < 0) - goto error; + return NULL; return virBufferContentAndReset(&buf); - - error: - return NULL; } @@ -4518,16 +4447,13 @@ qemuBuildSoundCodecStr(virDomainSoundDefPtr sound, if (flags == -1 || !virQEMUCapsGet(qemuCaps, flags)) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("%s not supported in this QEMU binary"), stype); - goto error; + return NULL; } virBufferAsprintf(&buf, "%s,id=%s-codec%d,bus=%s.0,cad=%d", stype, sound->info.alias, codec->cad, sound->info.alias, codec->cad); return virBufferContentAndReset(&buf); - - error: - return NULL; } @@ -4615,13 +4541,13 @@ qemuBuildDeviceVideoStr(const virDomainDef *def, virReportError(VIR_ERR_INTERNAL_ERROR, _("invalid model for video type '%s'"), virDomainVideoTypeToString(video->type)); - goto error; + return NULL; } if (STREQ(model, "virtio-gpu")) { if (qemuBuildVirtioDevStr(&buf, "virtio-gpu", qemuCaps, VIR_DOMAIN_DEVICE_VIDEO, video) < 0) { - goto error; + return NULL; } } else { virBufferAsprintf(&buf, "%s", model); @@ -4676,18 +4602,15 @@ qemuBuildDeviceVideoStr(const virDomainDef *def, } if (qemuBuildDeviceAddressStr(&buf, def, &video->info, qemuCaps) < 0) - goto error; + return NULL; if (qemuBuildVirtioOptionsStr(&buf, video->virtio, qemuCaps) < 0) - goto error; + return NULL; if (virBufferCheckError(&buf) < 0) - goto error; + return NULL; return virBufferContentAndReset(&buf); - - error: - return NULL; } @@ -4870,7 +4793,7 @@ qemuBuildPCIHostdevDevStr(const virDomainDef *def, virReportError(VIR_ERR_INTERNAL_ERROR, _("invalid PCI passthrough type '%s'"), virDomainHostdevSubsysPCIBackendTypeToString(backend)); - goto error; + return NULL; } virBufferAddLit(&buf, ",host="); @@ -4886,17 +4809,14 @@ qemuBuildPCIHostdevDevStr(const virDomainDef *def, if (bootIndex) virBufferAsprintf(&buf, ",bootindex=%u", bootIndex); if (qemuBuildDeviceAddressStr(&buf, def, dev->info, qemuCaps) < 0) - goto error; + return NULL; if (qemuBuildRomStr(&buf, dev->info) < 0) - goto error; + return NULL; if (virBufferCheckError(&buf) < 0) - goto error; + return NULL; return virBufferContentAndReset(&buf); - - error: - return NULL; } @@ -4924,15 +4844,12 @@ qemuBuildUSBHostdevDevStr(const virDomainDef *def, virBufferAsprintf(&buf, ",bootindex=%u", dev->info->bootIndex); if (qemuBuildDeviceAddressStr(&buf, def, dev->info, qemuCaps) < 0) - goto error; + return NULL; if (virBufferCheckError(&buf) < 0) - goto error; + return NULL; return virBufferContentAndReset(&buf); - - error: - return NULL; } @@ -4947,27 +4864,24 @@ qemuBuildHubDevStr(const virDomainDef *def, virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("hub type %s not supported"), virDomainHubTypeToString(dev->type)); - goto error; + return NULL; } if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_USB_HUB)) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("usb-hub not supported by QEMU binary")); - goto error; + return NULL; } virBufferAddLit(&buf, "usb-hub"); virBufferAsprintf(&buf, ",id=%s", dev->info.alias); if (qemuBuildDeviceAddressStr(&buf, def, &dev->info, qemuCaps) < 0) - goto error; + return NULL; if (virBufferCheckError(&buf) < 0) - goto error; + return NULL; return virBufferContentAndReset(&buf); - - error: - return NULL; } @@ -5009,7 +4923,6 @@ static char * qemuBuildSCSIiSCSIHostdevDrvStr(virDomainHostdevDefPtr dev, virQEMUCapsPtr qemuCaps) { - char *ret = NULL; VIR_AUTOCLEAN(virBuffer) buf = VIR_BUFFER_INITIALIZER; VIR_AUTOFREE(char *) netsource = NULL; VIR_AUTOPTR(virJSONValue) srcprops = NULL; @@ -5020,27 +4933,24 @@ qemuBuildSCSIiSCSIHostdevDrvStr(virDomainHostdevDefPtr dev, if (qemuDiskSourceNeedsProps(iscsisrc->src, qemuCaps)) { if (!(srcprops = qemuDiskSourceGetProps(iscsisrc->src))) - goto cleanup; + return NULL; if (!(netsource = virQEMUBuildDriveCommandlineFromJSON(srcprops))) - goto cleanup; + return NULL; virBufferAsprintf(&buf, "%s,if=none,format=raw", netsource); } else { /* Rather than pull what we think we want - use the network disk code */ if (!(netsource = qemuBuildNetworkDriveStr(iscsisrc->src, srcPriv ? srcPriv->secinfo : NULL))) - goto cleanup; + return NULL; virBufferAddLit(&buf, "file="); virQEMUBuildBufferEscapeComma(&buf, netsource); virBufferAddLit(&buf, ",if=none,format=raw"); } if (virBufferCheckError(&buf) < 0) - goto cleanup; - - ret = virBufferContentAndReset(&buf); + return NULL; - cleanup: - return ret; + return virBufferContentAndReset(&buf); } char * @@ -5055,12 +4965,12 @@ qemuBuildSCSIVHostHostdevDevStr(const virDomainDef *def, if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_VHOST_SCSI)) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("This QEMU doesn't support vhost-scsi devices")); - goto cleanup; + return NULL; } if (qemuBuildVirtioDevStr(&buf, "vhost-scsi", qemuCaps, VIR_DOMAIN_DEVICE_HOSTDEV, dev) < 0) { - goto cleanup; + return NULL; } virBufferAsprintf(&buf, ",wwpn=%s,vhostfd=%s,id=%s", @@ -5069,15 +4979,12 @@ qemuBuildSCSIVHostHostdevDevStr(const virDomainDef *def, dev->info->alias); if (qemuBuildDeviceAddressStr(&buf, def, dev->info, qemuCaps) < 0) - goto cleanup; + return NULL; if (virBufferCheckError(&buf) < 0) - goto cleanup; + return NULL; return virBufferContentAndReset(&buf); - - cleanup: - return NULL; } char * @@ -5091,27 +4998,25 @@ qemuBuildSCSIHostdevDrvStr(virDomainHostdevDefPtr dev, if (scsisrc->protocol == VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_ISCSI) { if (!(source = qemuBuildSCSIiSCSIHostdevDrvStr(dev, qemuCaps))) - goto error; + return NULL; virBufferAdd(&buf, source, -1); } else { if (!(source = qemuBuildSCSIHostHostdevDrvStr(dev))) - goto error; + return NULL; virBufferAsprintf(&buf, "file=/dev/%s,if=none,format=raw", source); } if (!(drivealias = qemuAliasFromHostdev(dev))) - goto error; + return NULL; virBufferAsprintf(&buf, ",id=%s", drivealias); if (dev->readonly) virBufferAddLit(&buf, ",readonly=on"); if (virBufferCheckError(&buf) < 0) - goto error; + return NULL; return virBufferContentAndReset(&buf); - error: - return NULL; } char * @@ -5125,21 +5030,21 @@ qemuBuildSCSIHostdevDevStr(const virDomainDef *def, model = qemuDomainFindSCSIControllerModel(def, dev->info); if (model < 0) - goto error; + return NULL; if (model == VIR_DOMAIN_CONTROLLER_MODEL_SCSI_LSILOGIC) { if (dev->info->addr.drive.target != 0) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("target must be 0 for scsi host device " "if its controller model is 'lsilogic'")); - goto error; + return NULL; } if (dev->info->addr.drive.unit > 7) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("unit must be not more than 7 for scsi host " "device if its controller model is 'lsilogic'")); - goto error; + return NULL; } } @@ -5147,7 +5052,7 @@ qemuBuildSCSIHostdevDevStr(const virDomainDef *def, if (!(contAlias = virDomainControllerAliasFind(def, VIR_DOMAIN_CONTROLLER_TYPE_SCSI, dev->info->addr.drive.controller))) - goto error; + return NULL; if (model == VIR_DOMAIN_CONTROLLER_MODEL_SCSI_LSILOGIC) { virBufferAsprintf(&buf, ",bus=%s.%d,scsi-id=%d", @@ -5163,18 +5068,16 @@ qemuBuildSCSIHostdevDevStr(const virDomainDef *def, } if (!(driveAlias = qemuAliasFromHostdev(dev))) - goto error; + return NULL; virBufferAsprintf(&buf, ",drive=%s,id=%s", driveAlias, dev->info->alias); if (dev->info->bootIndex) virBufferAsprintf(&buf, ",bootindex=%u", dev->info->bootIndex); if (virBufferCheckError(&buf) < 0) - goto error; + return NULL; return virBufferContentAndReset(&buf); - error: - return NULL; } static int @@ -5320,10 +5223,9 @@ qemuBuildChrChardevStr(virLogManagerPtr logManager, VIR_AUTOCLEAN(virBuffer) buf = VIR_BUFFER_INITIALIZER; bool telnet; VIR_AUTOFREE(char *) charAlias = NULL; - char *ret = NULL; if (!(charAlias = qemuAliasChardevFromDevAlias(alias))) - goto cleanup; + return NULL; switch (dev->type) { case VIR_DOMAIN_CHR_TYPE_NULL: @@ -5352,14 +5254,14 @@ qemuBuildChrChardevStr(virLogManagerPtr logManager, !virQEMUCapsGet(qemuCaps, QEMU_CAPS_CHARDEV_FILE_APPEND)) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("append not supported in this QEMU binary")); - goto cleanup; + return NULL; } if (qemuBuildChrChardevFileStr(flags & QEMU_BUILD_CHARDEV_FILE_LOGD ? logManager : NULL, cmd, def, &buf, "path", dev->data.file.path, "append", dev->data.file.append) < 0) - goto cleanup; + return NULL; break; case VIR_DOMAIN_CHR_TYPE_PIPE: @@ -5420,20 +5322,20 @@ qemuBuildChrChardevStr(virLogManagerPtr logManager, if (chrSourcePriv && chrSourcePriv->secinfo) { if (qemuBuildObjectSecretCommandLine(cmd, chrSourcePriv->secinfo) < 0) - goto cleanup; + return NULL; tlsCertEncSecAlias = chrSourcePriv->secinfo->s.aes.alias; } if (!(objalias = qemuAliasTLSObjFromSrcAlias(charAlias))) - goto cleanup; + return NULL; if (qemuBuildTLSx509CommandLine(cmd, cfg->chardevTLSx509certdir, dev->data.tcp.listen, cfg->chardevTLSx509verify, tlsCertEncSecAlias, objalias, qemuCaps) < 0) { - goto cleanup; + return NULL; } virBufferAsprintf(&buf, ",tls-creds=%s", objalias); @@ -5446,14 +5348,14 @@ qemuBuildChrChardevStr(virLogManagerPtr logManager, (flags & QEMU_BUILD_CHARDEV_UNIX_FD_PASS) && virQEMUCapsGet(qemuCaps, QEMU_CAPS_CHARDEV_FD_PASS)) { if (qemuSecuritySetSocketLabel(secManager, (virDomainDefPtr)def) < 0) - goto cleanup; + return NULL; int fd = qemuOpenChrChardevUNIXSocket(dev); if (qemuSecurityClearSocketLabel(secManager, (virDomainDefPtr)def) < 0) { VIR_FORCE_CLOSE(fd); - goto cleanup; + return NULL; } if (fd < 0) - goto cleanup; + return NULL; virBufferAsprintf(&buf, ",fd=%d", fd); @@ -5485,27 +5387,25 @@ qemuBuildChrChardevStr(virLogManagerPtr logManager, virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("unsupported chardev '%s'"), virDomainChrTypeToString(dev->type)); - goto cleanup; + return NULL; } if (dev->logfile) { if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_CHARDEV_LOGFILE)) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("logfile not supported in this QEMU binary")); - goto cleanup; + return NULL; } if (qemuBuildChrChardevFileStr(logManager, cmd, def, &buf, "logfile", dev->logfile, "logappend", dev->logappend) < 0) - goto cleanup; + return NULL; } if (virBufferCheckError(&buf) < 0) - goto cleanup; + return NULL; - ret = virBufferContentAndReset(&buf); - cleanup: - return ret; + return virBufferContentAndReset(&buf); } char * @@ -5515,17 +5415,16 @@ qemuBuildHostdevMediatedDevStr(const virDomainDef *def, { VIR_AUTOCLEAN(virBuffer) buf = VIR_BUFFER_INITIALIZER; virDomainHostdevSubsysMediatedDevPtr mdevsrc = &dev->source.subsys.u.mdev; - char *ret = NULL; VIR_AUTOFREE(char *) mdevPath = NULL; const char *dev_str = NULL; if (!(mdevPath = virMediatedDeviceGetSysfsPath(mdevsrc->uuidstr))) - goto cleanup; + return NULL; dev_str = virMediatedDeviceModelTypeToString(mdevsrc->model); if (!dev_str) - goto cleanup; + return NULL; virBufferAdd(&buf, dev_str, -1); virBufferAsprintf(&buf, ",id=%s,sysfsdev=%s", dev->info->alias, mdevPath); @@ -5535,15 +5434,12 @@ qemuBuildHostdevMediatedDevStr(const virDomainDef *def, virTristateSwitchTypeToString(mdevsrc->display)); if (qemuBuildDeviceAddressStr(&buf, def, dev->info, qemuCaps) < 0) - goto cleanup; + return NULL; if (virBufferCheckError(&buf) < 0) - goto cleanup; - - ret = virBufferContentAndReset(&buf); + return NULL; - cleanup: - return ret; + return virBufferContentAndReset(&buf); } static int @@ -5798,13 +5694,13 @@ qemuBuildVirtioSerialPortDevStr(const virDomainDef *def, if (dev->info.type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_SERIAL) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("virtio serial device has invalid address type")); - goto error; + return NULL; } contAlias = virDomainControllerAliasFind(def, VIR_DOMAIN_CONTROLLER_TYPE_VIRTIO_SERIAL, dev->info.addr.vioserial.controller); if (!contAlias) - goto error; + return NULL; virBufferAsprintf(&buf, ",bus=%s.%d,nr=%d", contAlias, dev->info.addr.vioserial.bus, @@ -5818,7 +5714,7 @@ qemuBuildVirtioSerialPortDevStr(const virDomainDef *def, virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("Unsupported spicevmc target name '%s'"), dev->target.name); - goto error; + return NULL; } virBufferAsprintf(&buf, ",chardev=char%s,id=%s", @@ -5830,12 +5726,9 @@ qemuBuildVirtioSerialPortDevStr(const virDomainDef *def, ? dev->target.name : "com.redhat.spice.0"); } if (virBufferCheckError(&buf) < 0) - goto error; + return NULL; return virBufferContentAndReset(&buf); - - error: - return NULL; } static char * @@ -5854,17 +5747,14 @@ qemuBuildSclpDevStr(virDomainChrDefPtr dev) } else { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("Cannot use slcp with devices other than console")); - goto error; + return NULL; } virBufferAsprintf(&buf, ",chardev=char%s,id=%s", dev->info.alias, dev->info.alias); if (virBufferCheckError(&buf) < 0) - goto error; + return NULL; return virBufferContentAndReset(&buf); - - error: - return NULL; } @@ -5913,10 +5803,9 @@ qemuBuildRNGBackendProps(virDomainRNGDefPtr rng, { VIR_AUTOFREE(char *) objAlias = NULL; VIR_AUTOFREE(char *) charBackendAlias = NULL; - int ret = -1; if (virAsprintf(&objAlias, "obj%s", rng->info.alias) < 0) - goto cleanup; + return -1; switch ((virDomainRNGBackend) rng->backend) { case VIR_DOMAIN_RNG_BACKEND_RANDOM: @@ -5924,13 +5813,13 @@ qemuBuildRNGBackendProps(virDomainRNGDefPtr rng, virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("this qemu doesn't support the rng-random " "backend")); - goto cleanup; + return -1; } if (qemuMonitorCreateObjectProps(props, "rng-random", objAlias, "s:filename", rng->source.file, NULL) < 0) - goto cleanup; + return -1; break; @@ -5939,29 +5828,26 @@ qemuBuildRNGBackendProps(virDomainRNGDefPtr rng, virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("this qemu doesn't support the rng-egd " "backend")); - goto cleanup; + return -1; } if (!(charBackendAlias = qemuAliasChardevFromDevAlias(rng->info.alias))) - goto cleanup; + return -1; if (qemuMonitorCreateObjectProps(props, "rng-egd", objAlias, "s:chardev", charBackendAlias, NULL) < 0) - goto cleanup; + return -1; break; case VIR_DOMAIN_RNG_BACKEND_LAST: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("unknown rng-random backend")); - goto cleanup; + return -1; } - ret = 0; - - cleanup: - return ret; + return 0; } @@ -5974,11 +5860,11 @@ qemuBuildRNGDevStr(const virDomainDef *def, if (!qemuDomainCheckCCWS390AddressSupport(def, &dev->info, qemuCaps, dev->source.file)) - goto error; + return NULL; if (qemuBuildVirtioDevStr(&buf, "virtio-rng", qemuCaps, VIR_DOMAIN_DEVICE_RNG, dev) < 0) { - goto error; + return NULL; } virBufferAsprintf(&buf, ",rng=obj%s,id=%s", @@ -5993,17 +5879,14 @@ qemuBuildRNGDevStr(const virDomainDef *def, } if (qemuBuildVirtioOptionsStr(&buf, dev->virtio, qemuCaps) < 0) - goto error; + return NULL; if (qemuBuildDeviceAddressStr(&buf, def, &dev->info, qemuCaps) < 0) - goto error; + return NULL; if (virBufferCheckError(&buf) < 0) - goto error; + return NULL; return virBufferContentAndReset(&buf); - - error: - return NULL; } @@ -6194,12 +6077,9 @@ qemuBuildSmbiosBaseBoardStr(virSysinfoBaseBoardDefPtr def) } if (virBufferCheckError(&buf) < 0) - goto error; + return NULL; return virBufferContentAndReset(&buf); - - error: - return NULL; } @@ -6258,12 +6138,9 @@ qemuBuildSmbiosChassisStr(virSysinfoChassisDefPtr def) } if (virBufferCheckError(&buf) < 0) - goto error; + return NULL; return virBufferContentAndReset(&buf); - - error: - return NULL; } @@ -6437,7 +6314,7 @@ qemuBuildClockArgStr(virDomainClockDefPtr def) * startup). */ if (virTimeLocalOffsetFromUTC(&localOffset) < 0) - goto error; + return NULL; def->data.variable.adjustment += localOffset; def->data.variable.basis = VIR_DOMAIN_CLOCK_BASIS_UTC; } @@ -6466,7 +6343,7 @@ qemuBuildClockArgStr(virDomainClockDefPtr def) virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("unsupported clock offset '%s'"), virDomainClockOffsetTypeToString(def->offset)); - goto error; + return NULL; } /* Look for an 'rtc' timer element, and add in appropriate @@ -6480,7 +6357,7 @@ qemuBuildClockArgStr(virDomainClockDefPtr def) virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("unsupported rtc timer track '%s'"), virDomainTimerTrackTypeToString(def->timers[i]->track)); - goto error; + return NULL; case VIR_DOMAIN_TIMER_TRACK_GUEST: virBufferAddLit(&buf, ",clock=vm"); break; @@ -6504,19 +6381,16 @@ qemuBuildClockArgStr(virDomainClockDefPtr def) virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("unsupported rtc timer tickpolicy '%s'"), virDomainTimerTickpolicyTypeToString(def->timers[i]->tickpolicy)); - goto error; + return NULL; } break; /* no need to check other timers - there is only one rtc */ } } if (virBufferCheckError(&buf) < 0) - goto error; + return NULL; return virBufferContentAndReset(&buf); - - error: - return NULL; } @@ -6704,7 +6578,7 @@ qemuBuildBootCommandLine(virCommandPtr cmd, virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("reboot timeout is not supported " "by this QEMU binary")); - goto error; + return -1; } virBufferAsprintf(&boot_buf, @@ -6717,7 +6591,7 @@ qemuBuildBootCommandLine(virCommandPtr cmd, virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("splash timeout is not supported " "by this QEMU binary")); - goto error; + return -1; } virBufferAsprintf(&boot_buf, "splash-time=%u,", def->os.bm_timeout); @@ -6729,7 +6603,7 @@ qemuBuildBootCommandLine(virCommandPtr cmd, virBufferTrim(&boot_buf, ",", -1); if (virBufferCheckError(&boot_buf) < 0) - goto error; + return -1; boot_opts_str = virBufferContentAndReset(&boot_buf); if (boot_opts_str) { @@ -6755,9 +6629,6 @@ qemuBuildBootCommandLine(virCommandPtr cmd, } return 0; - - error: - return -1; } @@ -6898,13 +6769,12 @@ qemuBuildCpuModelArgStr(virQEMUDriverPtr driver, virBufferPtr buf, virQEMUCapsPtr qemuCaps) { - int ret = -1; size_t i; VIR_AUTOUNREF(virCapsPtr) caps = NULL; virCPUDefPtr cpu = def->cpu; if (!(caps = virQEMUDriverGetCapabilities(driver, false))) - goto cleanup; + return -1; switch ((virCPUMode) cpu->mode) { case VIR_CPU_MODE_HOST_PASSTHROUGH: @@ -6917,7 +6787,7 @@ qemuBuildCpuModelArgStr(virQEMUDriverPtr driver, _("QEMU binary does not support CPU " "host-passthrough for armv7l on " "aarch64 host")); - goto cleanup; + return -1; } virBufferAddLit(buf, ",aarch64=off"); } @@ -6935,7 +6805,7 @@ qemuBuildCpuModelArgStr(virQEMUDriverPtr driver, virReportError(VIR_ERR_INTERNAL_ERROR, _("unexpected host-model CPU for %s architecture"), virArchToString(def->os.arch)); - goto cleanup; + return -1; } break; @@ -6952,7 +6822,7 @@ qemuBuildCpuModelArgStr(virQEMUDriverPtr driver, virReportError(VIR_ERR_INTERNAL_ERROR, _("CPU features not supported by hypervisor for %s " "architecture"), virArchToString(def->os.arch)); - goto cleanup; + return -1; } if (cpu->vendor_id) @@ -6976,9 +6846,7 @@ qemuBuildCpuModelArgStr(virQEMUDriverPtr driver, } } - ret = 0; - cleanup: - return ret; + return 0; } static int @@ -6990,7 +6858,6 @@ qemuBuildCpuCommandLine(virCommandPtr cmd, virArch hostarch = virArchFromHost(); VIR_AUTOFREE(char *) cpu = NULL; VIR_AUTOFREE(char *) cpu_flags = NULL; - int ret = -1; VIR_AUTOCLEAN(virBuffer) cpu_buf = VIR_BUFFER_INITIALIZER; VIR_AUTOCLEAN(virBuffer) buf = VIR_BUFFER_INITIALIZER; size_t i; @@ -6998,7 +6865,7 @@ qemuBuildCpuCommandLine(virCommandPtr cmd, if (def->cpu && (def->cpu->mode != VIR_CPU_MODE_CUSTOM || def->cpu->model)) { if (qemuBuildCpuModelArgStr(driver, def, &cpu_buf, qemuCaps) < 0) - goto cleanup; + return -1; } else { /* * Need to force a 32-bit guest CPU type if @@ -7164,9 +7031,9 @@ qemuBuildCpuCommandLine(virCommandPtr cmd, } if (virBufferCheckError(&cpu_buf) < 0) - goto cleanup; + return -1; if (virBufferCheckError(&buf) < 0) - goto cleanup; + return -1; cpu = virBufferContentAndReset(&cpu_buf); cpu_flags = virBufferContentAndReset(&buf); @@ -7186,11 +7053,11 @@ qemuBuildCpuCommandLine(virCommandPtr cmd, _("CPU flags requested but can't determine " "default CPU for arch %s"), virArchToString(def->os.arch)); - goto cleanup; + return -1; } if (VIR_STRDUP(cpu, default_model) < 0) - goto cleanup; + return -1; } if (cpu) { @@ -7198,10 +7065,7 @@ qemuBuildCpuCommandLine(virCommandPtr cmd, virCommandAddArgFormat(cmd, "%s%s", cpu, NULLSTR_EMPTY(cpu_flags)); } - ret = 0; - - cleanup: - return ret; + return 0; } @@ -7304,7 +7168,6 @@ qemuBuildMachineCommandLine(virCommandPtr cmd, virCPUDefPtr cpu = def->cpu; VIR_AUTOCLEAN(virBuffer) buf = VIR_BUFFER_INITIALIZER; size_t i; - int ret = -1; /* This should *never* be NULL, since we always provide * a machine in the capabilities data for QEMU. So this @@ -7360,7 +7223,7 @@ qemuBuildMachineCommandLine(virCommandPtr cmd, virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("vmport is not available " "with this QEMU binary")); - goto cleanup; + return -1; } virBufferAsprintf(&buf, ",vmport=%s", @@ -7383,7 +7246,7 @@ qemuBuildMachineCommandLine(virCommandPtr cmd, virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("disable shared memory is not available " "with this QEMU binary")); - goto cleanup; + return -1; } virBufferAddLit(&buf, ",mem-merge=off"); @@ -7391,7 +7254,7 @@ qemuBuildMachineCommandLine(virCommandPtr cmd, if (def->keywrap && !qemuAppendKeyWrapMachineParms(&buf, qemuCaps, def->keywrap)) - goto cleanup; + return -1; if (def->features[VIR_DOMAIN_FEATURE_GIC] == VIR_TRISTATE_SWITCH_ON) { bool hasGICVersionOption = virQEMUCapsGet(qemuCaps, @@ -7416,7 +7279,7 @@ qemuBuildMachineCommandLine(virCommandPtr cmd, virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("gic-version option is not available " "with this QEMU binary")); - goto cleanup; + return -1; } virBufferAsprintf(&buf, ",gic-version=%s", @@ -7457,7 +7320,7 @@ qemuBuildMachineCommandLine(virCommandPtr cmd, if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_NVDIMM)) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("nvdimm isn't supported by this QEMU binary")); - goto cleanup; + return -1; } virBufferAddLit(&buf, ",nvdimm=on"); break; @@ -7469,7 +7332,7 @@ qemuBuildMachineCommandLine(virCommandPtr cmd, virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("I/O APIC tuning is not supported by this " "QEMU binary")); - goto cleanup; + return -1; } switch ((virDomainIOAPIC) def->features[VIR_DOMAIN_FEATURE_IOAPIC]) { case VIR_DOMAIN_IOAPIC_QEMU: @@ -7477,7 +7340,7 @@ qemuBuildMachineCommandLine(virCommandPtr cmd, virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("split I/O APIC is not supported by this " "QEMU binary")); - goto cleanup; + return -1; } virBufferAddLit(&buf, ",kernel_irqchip=split"); break; @@ -7499,14 +7362,14 @@ qemuBuildMachineCommandLine(virCommandPtr cmd, virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("HTP resizing is not supported by this " "QEMU binary")); - goto cleanup; + return -1; } str = virDomainHPTResizingTypeToString(def->hpt_resizing); if (!str) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("Invalid setting for HPT resizing")); - goto cleanup; + return -1; } virBufferAsprintf(&buf, ",resize-hpt=%s", str); @@ -7517,7 +7380,7 @@ qemuBuildMachineCommandLine(virCommandPtr cmd, virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("Configuring the page size for HPT guests " "is not supported by this QEMU binary")); - goto cleanup; + return -1; } virBufferAsprintf(&buf, ",cap-hpt-max-page-size=%lluk", @@ -7532,14 +7395,14 @@ qemuBuildMachineCommandLine(virCommandPtr cmd, virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("HTM configuration is not supported by this " "QEMU binary")); - goto cleanup; + return -1; } str = virTristateSwitchTypeToString(def->features[VIR_DOMAIN_FEATURE_HTM]); if (!str) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("Invalid setting for HTM state")); - goto cleanup; + return -1; } virBufferAsprintf(&buf, ",cap-htm=%s", str); @@ -7552,14 +7415,14 @@ qemuBuildMachineCommandLine(virCommandPtr cmd, virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("Nested HV configuration is not supported by " "this QEMU binary")); - goto cleanup; + return -1; } str = virTristateSwitchTypeToString(def->features[VIR_DOMAIN_FEATURE_NESTED_HV]); if (!str) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("Invalid setting for nested HV state")); - goto cleanup; + return -1; } virBufferAsprintf(&buf, ",cap-nested-hv=%s", str); @@ -7580,9 +7443,7 @@ qemuBuildMachineCommandLine(virCommandPtr cmd, virCommandAddArgBuffer(cmd, &buf); - ret = 0; - cleanup: - return ret; + return 0; } @@ -7956,7 +7817,6 @@ qemuBuildGraphicsSDLCommandLine(virQEMUDriverConfigPtr cfg ATTRIBUTE_UNUSED, virQEMUCapsPtr qemuCaps ATTRIBUTE_UNUSED, virDomainGraphicsDefPtr graphics) { - int ret = -1; VIR_AUTOCLEAN(virBuffer) opt = VIR_BUFFER_INITIALIZER; if (graphics->data.sdl.xauth) @@ -7981,7 +7841,7 @@ qemuBuildGraphicsSDLCommandLine(virQEMUDriverConfigPtr cfg ATTRIBUTE_UNUSED, virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("OpenGL for SDL is not supported with this QEMU " "binary")); - goto cleanup; + return -1; } virBufferAsprintf(&opt, ",gl=%s", @@ -7990,13 +7850,11 @@ qemuBuildGraphicsSDLCommandLine(virQEMUDriverConfigPtr cfg ATTRIBUTE_UNUSED, } if (virBufferCheckError(&opt) < 0) - goto cleanup; + return -1; virCommandAddArgBuffer(cmd, &opt); - ret = 0; - cleanup: - return ret; + return 0; } @@ -8013,13 +7871,13 @@ qemuBuildGraphicsVNCCommandLine(virQEMUDriverConfigPtr cfg, if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_VNC)) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("vnc graphics are not supported with this QEMU")); - goto error; + return -1; } if (!(glisten = virDomainGraphicsGetListen(graphics, 0))) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("missing listen element")); - goto error; + return -1; } switch (glisten->type) { @@ -8038,7 +7896,7 @@ qemuBuildGraphicsVNCCommandLine(virQEMUDriverConfigPtr cfg, graphics->data.vnc.port > 65535)) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("vnc port must be in range [5900,65535]")); - goto error; + return -1; } if (glisten->address) { @@ -8080,7 +7938,7 @@ qemuBuildGraphicsVNCCommandLine(virQEMUDriverConfigPtr cfg, if (gfxPriv->secinfo) { if (qemuBuildObjectSecretCommandLine(cmd, gfxPriv->secinfo) < 0) - goto error; + return -1; secretAlias = gfxPriv->secinfo->s.aes.alias; } @@ -8091,7 +7949,7 @@ qemuBuildGraphicsVNCCommandLine(virQEMUDriverConfigPtr cfg, secretAlias, gfxPriv->tlsAlias, qemuCaps) < 0) - goto error; + return -1; virBufferAsprintf(&opt, ",tls-creds=%s", gfxPriv->tlsAlias); } else { @@ -8130,9 +7988,6 @@ qemuBuildGraphicsVNCCommandLine(virQEMUDriverConfigPtr cfg, virCommandAddEnvString(cmd, "QEMU_AUDIO_DRV=none"); return 0; - - error: - return -1; } @@ -8153,13 +8008,13 @@ qemuBuildGraphicsSPICECommandLine(virQEMUDriverConfigPtr cfg, if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_SPICE)) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("spice graphics are not supported with this QEMU")); - goto error; + return -1; } if (!(glisten = virDomainGraphicsGetListen(graphics, 0))) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("missing listen element")); - goto error; + return -1; } switch (glisten->type) { @@ -8168,7 +8023,7 @@ qemuBuildGraphicsSPICECommandLine(virQEMUDriverConfigPtr cfg, virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("unix socket for spice graphics are not supported " "with this QEMU")); - goto error; + return -1; } virBufferAddLit(&opt, "unix,addr="); @@ -8189,7 +8044,7 @@ qemuBuildGraphicsSPICECommandLine(virQEMUDriverConfigPtr cfg, virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("spice TLS port set in XML configuration, " "but TLS is disabled in qemu.conf")); - goto error; + return -1; } virBufferAsprintf(&opt, "tls-port=%u,", tlsPort); hasSecure = true; @@ -8236,7 +8091,7 @@ qemuBuildGraphicsSPICECommandLine(virQEMUDriverConfigPtr cfg, default: virReportEnumRangeError(virDomainGraphicsSpiceMouseMode, graphics->data.spice.mousemode); - goto error; + return -1; } } @@ -8260,7 +8115,7 @@ qemuBuildGraphicsSPICECommandLine(virQEMUDriverConfigPtr cfg, _("spice defaultMode secure requested in XML " "configuration, but TLS connection is not " "available")); - goto error; + return -1; } virBufferAddLit(&opt, "tls-channel=default,"); break; @@ -8270,7 +8125,7 @@ qemuBuildGraphicsSPICECommandLine(virQEMUDriverConfigPtr cfg, _("spice defaultMode insecure requested in XML " "configuration, but plaintext connection is not " "available")); - goto error; + return -1; } virBufferAddLit(&opt, "plaintext-channel=default,"); break; @@ -8288,7 +8143,7 @@ qemuBuildGraphicsSPICECommandLine(virQEMUDriverConfigPtr cfg, _("spice secure channels set in XML " "configuration, but TLS connection is not " "available")); - goto error; + return -1; } virBufferAsprintf(&opt, "tls-channel=%s,", virDomainGraphicsSpiceChannelNameTypeToString(i)); @@ -8300,7 +8155,7 @@ qemuBuildGraphicsSPICECommandLine(virQEMUDriverConfigPtr cfg, _("spice insecure channels set in XML " "configuration, but plaintext connection " "is not available")); - goto error; + return -1; } virBufferAsprintf(&opt, "plaintext-channel=%s,", virDomainGraphicsSpiceChannelNameTypeToString(i)); @@ -8333,7 +8188,7 @@ qemuBuildGraphicsSPICECommandLine(virQEMUDriverConfigPtr cfg, if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_SPICE_FILE_XFER_DISABLE)) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("This QEMU can't disable file transfers through spice")); - goto error; + return -1; } else { virBufferAddLit(&opt, "disable-agent-file-xfer,"); } @@ -8343,7 +8198,7 @@ qemuBuildGraphicsSPICECommandLine(virQEMUDriverConfigPtr cfg, if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_SPICE_GL)) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("This QEMU doesn't support spice OpenGL")); - goto error; + return -1; } /* spice.gl is a TristateBool, but qemu expects on/off: use @@ -8355,7 +8210,7 @@ qemuBuildGraphicsSPICECommandLine(virQEMUDriverConfigPtr cfg, if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_SPICE_RENDERNODE)) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("This QEMU doesn't support spice OpenGL rendernode")); - goto error; + return -1; } virBufferAddLit(&opt, "rendernode="); @@ -8381,9 +8236,6 @@ qemuBuildGraphicsSPICECommandLine(virQEMUDriverConfigPtr cfg, virCommandAddEnvString(cmd, "QEMU_AUDIO_DRV=spice"); return 0; - - error: - return -1; } @@ -8393,7 +8245,6 @@ qemuBuildGraphicsEGLHeadlessCommandLine(virQEMUDriverConfigPtr cfg ATTRIBUTE_UNU virQEMUCapsPtr qemuCaps, virDomainGraphicsDefPtr graphics) { - int ret = -1; VIR_AUTOCLEAN(virBuffer) opt = VIR_BUFFER_INITIALIZER; virBufferAddLit(&opt, "egl-headless"); @@ -8403,7 +8254,7 @@ qemuBuildGraphicsEGLHeadlessCommandLine(virQEMUDriverConfigPtr cfg ATTRIBUTE_UNU virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("This QEMU doesn't support OpenGL rendernode " "with egl-headless graphics type")); - goto cleanup; + return -1; } virBufferAddLit(&opt, ",rendernode="); @@ -8412,14 +8263,12 @@ qemuBuildGraphicsEGLHeadlessCommandLine(virQEMUDriverConfigPtr cfg ATTRIBUTE_UNU } if (virBufferCheckError(&opt) < 0) - goto cleanup; + return -1; virCommandAddArg(cmd, "-display"); virCommandAddArgBuffer(cmd, &opt); - ret = 0; - cleanup: - return ret; + return 0; } @@ -8486,7 +8335,6 @@ qemuInterfaceVhostuserConnect(virQEMUDriverPtr driver, char **chardev) { VIR_AUTOUNREF(virQEMUDriverConfigPtr) cfg = virQEMUDriverGetConfig(driver); - int ret = -1; switch ((virDomainChrType)net->data.vhostuser->type) { case VIR_DOMAIN_CHR_TYPE_UNIX: @@ -8494,7 +8342,7 @@ qemuInterfaceVhostuserConnect(virQEMUDriverPtr driver, cmd, cfg, def, net->data.vhostuser, net->info.alias, qemuCaps, 0))) - goto cleanup; + return -1; break; case VIR_DOMAIN_CHR_TYPE_NULL: @@ -8513,12 +8361,10 @@ qemuInterfaceVhostuserConnect(virQEMUDriverPtr driver, virReportError(VIR_ERR_INTERNAL_ERROR, _("vhost-user type '%s' not supported"), virDomainChrTypeToString(net->data.vhostuser->type)); - goto cleanup; + return -1; } - ret = 0; - cleanup: - return ret; + return 0; } static int @@ -9104,15 +8950,12 @@ qemuBuildShmemDevLegacyStr(virDomainDefPtr def, } if (qemuBuildDeviceAddressStr(&buf, def, &shmem->info, qemuCaps) < 0) - goto error; + return NULL; if (virBufferCheckError(&buf) < 0) - goto error; + return NULL; return virBufferContentAndReset(&buf); - - error: - return NULL; } char * @@ -9169,7 +9012,7 @@ qemuBuildShmemBackendMemProps(virDomainShmemDefPtr shmem) return NULL; if (virAsprintf(&mem_alias, "shmmem-%s", shmem->info.alias) < 0) - goto cleanup; + return NULL; qemuMonitorCreateObjectProps(&ret, "memory-backend-file", mem_alias, "s:mem-path", mem_path, @@ -9177,7 +9020,6 @@ qemuBuildShmemBackendMemProps(virDomainShmemDefPtr shmem) "b:share", true, NULL); - cleanup: return ret; } @@ -9625,14 +9467,14 @@ qemuBuildRedirdevDevStr(const virDomainDef *def, virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("Redirection bus %s is not supported by QEMU"), virDomainRedirdevBusTypeToString(dev->bus)); - goto error; + return NULL; } if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_USB_REDIR)) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("USB redirection is not supported " "by this version of QEMU")); - goto error; + return NULL; } virBufferAsprintf(&buf, "usb-redir,chardev=char%s,id=%s", @@ -9643,7 +9485,7 @@ qemuBuildRedirdevDevStr(const virDomainDef *def, virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("USB redirection filter is not " "supported by this version of QEMU")); - goto error; + return NULL; } virBufferAddLit(&buf, ",filter="); @@ -9680,15 +9522,12 @@ qemuBuildRedirdevDevStr(const virDomainDef *def, virBufferAsprintf(&buf, ",bootindex=%u", dev->info.bootIndex); if (qemuBuildDeviceAddressStr(&buf, def, &dev->info, qemuCaps) < 0) - goto error; + return NULL; if (virBufferCheckError(&buf) < 0) - goto error; + return NULL; return virBufferContentAndReset(&buf); - - error: - return NULL; } @@ -9811,7 +9650,7 @@ qemuBuildTPMDevStr(const virDomainDef *def, case VIR_DOMAIN_TPM_MODEL_LAST: default: virReportEnumRangeError(virDomainTPMModel, tpm->model); - goto error; + return NULL; } if (!virQEMUCapsGet(qemuCaps, flag)) { @@ -9819,19 +9658,16 @@ qemuBuildTPMDevStr(const virDomainDef *def, _("The QEMU executable %s does not support TPM " "model %s"), def->emulator, model); - goto error; + return NULL; } virBufferAsprintf(&buf, "%s,tpmdev=tpm-%s,id=%s", model, tpm->info.alias, tpm->info.alias); if (virBufferCheckError(&buf) < 0) - goto error; + return NULL; return virBufferContentAndReset(&buf); - - error: - return NULL; } @@ -9884,17 +9720,17 @@ qemuBuildTPMBackendStr(const virDomainDef *def, case VIR_DOMAIN_TPM_TYPE_PASSTHROUGH: tpmdev = tpm->data.passthrough.source.data.file.path; if (!(cancel_path = virTPMCreateCancelPath(tpmdev))) - goto error; + return NULL; if (qemuBuildTPMOpenBackendFDs(tpmdev, cancel_path, tpmfd, cancelfd) < 0) - goto error; + return NULL; virCommandPassFD(cmd, *tpmfd, VIR_COMMAND_PASS_FD_CLOSE_PARENT); virCommandPassFD(cmd, *cancelfd, VIR_COMMAND_PASS_FD_CLOSE_PARENT); if (!(devset = qemuVirCommandGetDevSet(cmd, *tpmfd)) || !(cancelset = qemuVirCommandGetDevSet(cmd, *cancelfd))) - goto error; + return NULL; virBufferAddLit(&buf, ",path="); virQEMUBuildBufferEscapeComma(&buf, devset); @@ -9908,20 +9744,17 @@ qemuBuildTPMBackendStr(const virDomainDef *def, if (virAsprintf(chardev, "socket,id=chrtpm,path=%s", tpm->data.emulator.source.data.nix.path) < 0) - goto error; + return NULL; break; case VIR_DOMAIN_TPM_TYPE_LAST: - goto error; + return NULL; } if (virBufferCheckError(&buf) < 0) - goto error; + return NULL; return virBufferContentAndReset(&buf); - - error: - return NULL; } @@ -9984,7 +9817,6 @@ qemuBuildSEVCommandLine(virDomainObjPtr vm, virCommandPtr cmd, VIR_AUTOCLEAN(virBuffer) buf = VIR_BUFFER_INITIALIZER; qemuDomainObjPrivatePtr priv = vm->privateData; char *path = NULL; - int ret = -1; if (!sev) return 0; @@ -9998,23 +9830,21 @@ qemuBuildSEVCommandLine(virDomainObjPtr vm, virCommandPtr cmd, if (sev->dh_cert) { if (virAsprintf(&path, "%s/dh_cert.base64", priv->libDir) < 0) - goto cleanup; + return -1; virBufferAsprintf(&buf, ",dh-cert-file=%s", path); VIR_FREE(path); } if (sev->session) { if (virAsprintf(&path, "%s/session.base64", priv->libDir) < 0) - goto cleanup; + return -1; virBufferAsprintf(&buf, ",session-file=%s", path); VIR_FREE(path); } virCommandAddArg(cmd, "-object"); virCommandAddArgBuffer(cmd, &buf); - ret = 0; - cleanup: - return ret; + return 0; } static int @@ -10167,15 +9997,12 @@ virJSONValuePtr qemuBuildPRManagedManagerInfoProps(qemuDomainObjPrivatePtr priv) { VIR_AUTOFREE(char *) path = NULL; - virJSONValuePtr ret = NULL; if (!(path = qemuDomainGetManagedPRSocketPath(priv))) return NULL; - ret = qemuBuildPRManagerInfoPropsInternal(qemuDomainGetManagedPRAlias(), - path); - - return ret; + return qemuBuildPRManagerInfoPropsInternal(qemuDomainGetManagedPRAlias(), + path); } @@ -10199,7 +10026,6 @@ qemuBuildManagedPRCommandLine(virCommandPtr cmd, { VIR_AUTOCLEAN(virBuffer) buf = VIR_BUFFER_INITIALIZER; VIR_AUTOPTR(virJSONValue) props = NULL; - int ret = -1; if (!virDomainDefHasManagedPR(def)) return 0; @@ -10208,14 +10034,12 @@ qemuBuildManagedPRCommandLine(virCommandPtr cmd, return -1; if (virQEMUBuildObjectCommandlineFromJSON(&buf, props) < 0) - goto cleanup; + return -1; virCommandAddArg(cmd, "-object"); virCommandAddArgBuffer(cmd, &buf); - ret = 0; - cleanup: - return ret; + return 0; } @@ -10345,27 +10169,22 @@ qemuBuildVsockDevStr(virDomainDefPtr def, { qemuDomainVsockPrivatePtr priv = (qemuDomainVsockPrivatePtr)vsock->privateData; VIR_AUTOCLEAN(virBuffer) buf = VIR_BUFFER_INITIALIZER; - char *ret = NULL; - if (qemuBuildVirtioDevStr(&buf, "vhost-vsock", qemuCaps, VIR_DOMAIN_DEVICE_VSOCK, vsock) < 0) { - goto cleanup; + return NULL; } virBufferAsprintf(&buf, ",id=%s", vsock->info.alias); virBufferAsprintf(&buf, ",guest-cid=%u", vsock->guest_cid); virBufferAsprintf(&buf, ",vhostfd=%s%u", fdprefix, priv->vhostfd); if (qemuBuildDeviceAddressStr(&buf, def, &vsock->info, qemuCaps) < 0) - goto cleanup; + return NULL; if (virBufferCheckError(&buf) < 0) - goto cleanup; - - ret = virBufferContentAndReset(&buf); + return NULL; - cleanup: - return ret; + return virBufferContentAndReset(&buf); } @@ -10377,22 +10196,19 @@ qemuBuildVsockCommandLine(virCommandPtr cmd, { qemuDomainVsockPrivatePtr priv = (qemuDomainVsockPrivatePtr)vsock->privateData; VIR_AUTOFREE(char *) devstr = NULL; - int ret = -1; if (!(devstr = qemuBuildVsockDevStr(def, vsock, qemuCaps, ""))) - goto cleanup; + return -1; virCommandPassFD(cmd, priv->vhostfd, VIR_COMMAND_PASS_FD_CLOSE_PARENT); priv->vhostfd = -1; if (qemuCommandAddExtDevice(cmd, &vsock->info) < 0) - goto cleanup; + return -1; virCommandAddArgList(cmd, "-device", devstr, NULL); - ret = 0; - cleanup: - return ret; + return 0; } @@ -10707,7 +10523,7 @@ qemuBuildSerialChrDeviceStr(char **deviceStr, virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("'%s' is not supported in this QEMU binary"), virDomainChrSerialTargetModelTypeToString(serial->targetModel)); - goto error; + return -1; } break; @@ -10721,7 +10537,7 @@ qemuBuildSerialChrDeviceStr(char **deviceStr, * branch and we will not have ended up here. */ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Invalid target model for serial device")); - goto error; + return -1; } virBufferAsprintf(&buf, "%s,chardev=char%s,id=%s", @@ -10729,16 +10545,13 @@ qemuBuildSerialChrDeviceStr(char **deviceStr, serial->info.alias, serial->info.alias); if (qemuBuildDeviceAddressStr(&buf, def, &serial->info, qemuCaps) < 0) - goto error; + return -1; if (virBufferCheckError(&buf) < 0) - goto error; + return -1; *deviceStr = virBufferContentAndReset(&buf); return 0; - - error: - return -1; } static int @@ -10771,12 +10584,12 @@ qemuBuildChannelChrDeviceStr(char **deviceStr, if (virAsprintf(deviceStr, "user,guestfwd=tcp:%s:%i-chardev:char%s,id=%s", addr, port, chr->info.alias, chr->info.alias) < 0) - goto cleanup; + return -1; break; case VIR_DOMAIN_CHR_CHANNEL_TARGET_TYPE_VIRTIO: if (!(*deviceStr = qemuBuildVirtioSerialPortDevStr(def, chr))) - goto cleanup; + return -1; break; case VIR_DOMAIN_CHR_CHANNEL_TARGET_TYPE_XEN: @@ -10785,9 +10598,7 @@ qemuBuildChannelChrDeviceStr(char **deviceStr, return ret; } - ret = 0; - cleanup: - return ret; + return 0; } static int @@ -10795,18 +10606,16 @@ qemuBuildConsoleChrDeviceStr(char **deviceStr, const virDomainDef *def, virDomainChrDefPtr chr) { - int ret = -1; - switch ((virDomainChrConsoleTargetType)chr->targetType) { case VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_SCLP: case VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_SCLPLM: if (!(*deviceStr = qemuBuildSclpDevStr(chr))) - goto cleanup; + return -1; break; case VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_VIRTIO: if (!(*deviceStr = qemuBuildVirtioSerialPortDevStr(def, chr))) - goto cleanup; + return -1; break; case VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_SERIAL: @@ -10821,12 +10630,10 @@ qemuBuildConsoleChrDeviceStr(char **deviceStr, virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("unsupported console target type %s"), NULLSTR(virDomainChrConsoleTargetTypeToString(chr->targetType))); - goto cleanup; + return -1; } - ret = 0; - cleanup: - return ret; + return 0; } int -- 2.19.2 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list