From 1425a6195cc3d2cb4f36287b7a898ef9cf3e1de4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1n=20Tomko?= Date: Tue, 20 Aug 2019 14:33:44 +0200 Subject: [PATCH] qemu_command: remove unnecessary labels and ret variables MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The recent cleanups allow us to clean up the code a bit. Signed-off-by: Ján Tomko Reviewed-by: Michal Privoznik --- src/qemu/qemu_command.c | 842 +++++++++++++++------------------------- 1 file changed, 323 insertions(+), 519 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 85987a509e..c3931b6744 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; } @@ -1633,7 +1605,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; @@ -1642,19 +1613,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 && @@ -1663,7 +1633,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) { @@ -1686,10 +1656,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); } @@ -1714,10 +1684,7 @@ qemuBuildDriveSourceStr(virDomainDiskDefPtr disk, virBufferAsprintf(buf, "format=%s,", qemuformat); } - ret = 0; - - cleanup: - return ret; + return 0; } @@ -2386,7 +2353,6 @@ qemuBuildFloppyCommandLineControllerOptions(virCommandPtr cmd, unsigned int bootindex; char driveLetter; size_t i; - int ret = -1; virBufferAddLit(&fdc_opts, "isa-fdc,"); @@ -2415,16 +2381,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) { @@ -2450,10 +2416,7 @@ qemuBuildFloppyCommandLineControllerOptions(virCommandPtr cmd, virCommandAddArgBuffer(cmd, &fdc_opts); } - ret = 0; - - cleanup: - return ret; + return 0; } @@ -2915,7 +2878,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) { @@ -2924,7 +2887,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"); @@ -2944,13 +2907,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; @@ -2958,7 +2921,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); @@ -2971,7 +2934,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: @@ -2984,7 +2947,7 @@ qemuBuildControllerDevStr(const virDomainDef *domainDef, case VIR_DOMAIN_CONTROLLER_TYPE_USB: if (qemuBuildUSBControllerDevStr(domainDef, def, qemuCaps, &buf) == -1) - goto error; + return -1; break; @@ -2996,7 +2959,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) { @@ -3044,13 +3007,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; } @@ -3062,7 +3025,7 @@ qemuBuildControllerDevStr(const virDomainDef *domainDef, virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("Unsupported controller type: %s"), virDomainControllerTypeToString(def->type)); - goto error; + return -1; } if (def->queues) @@ -3077,17 +3040,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; } @@ -3191,7 +3150,6 @@ qemuBuildControllersByTypeCommandLine(virCommandPtr cmd, virQEMUCapsPtr qemuCaps, virDomainControllerType type) { - int ret = -1; size_t i; for (i = 0; i < def->ncontrollers; i++) { @@ -3230,20 +3188,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; } @@ -3279,20 +3235,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; } @@ -3674,7 +3626,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", @@ -3683,20 +3634,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; } @@ -4114,20 +4061,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; } @@ -4187,12 +4131,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", @@ -4200,17 +4144,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; } @@ -4226,16 +4167,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; } @@ -4282,31 +4220,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); @@ -4317,18 +4255,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 * @@ -4350,22 +4285,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; } @@ -4442,7 +4374,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: @@ -4451,7 +4383,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: @@ -4462,20 +4394,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; } @@ -4511,16 +4440,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; } @@ -4608,13 +4534,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); @@ -4669,18 +4595,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; } @@ -4837,7 +4760,7 @@ qemuBuildPCIHostdevDevStr(const virDomainDef *def, virReportError(VIR_ERR_INTERNAL_ERROR, _("invalid PCI passthrough type '%s'"), virDomainHostdevSubsysPCIBackendTypeToString(backend)); - goto error; + return NULL; } virBufferAddLit(&buf, ",host="); @@ -4853,17 +4776,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; } @@ -4891,15 +4811,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; } @@ -4914,27 +4831,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; } @@ -4976,7 +4890,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; @@ -4987,27 +4900,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 * @@ -5022,12 +4932,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", @@ -5036,15 +4946,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 * @@ -5058,27 +4965,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 * @@ -5092,21 +4997,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; } } @@ -5114,7 +5019,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", @@ -5130,18 +5035,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 @@ -5287,10 +5190,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: @@ -5319,14 +5221,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: @@ -5387,20 +5289,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); @@ -5413,14 +5315,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); @@ -5452,27 +5354,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 * @@ -5482,17 +5382,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); @@ -5502,15 +5401,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 @@ -5750,13 +5646,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, @@ -5770,7 +5666,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", @@ -5782,12 +5678,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 * @@ -5806,17 +5699,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; } @@ -5865,10 +5755,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: @@ -5876,13 +5765,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; @@ -5891,29 +5780,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; } @@ -5926,11 +5812,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", @@ -5945,17 +5831,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; } @@ -6146,12 +6029,9 @@ qemuBuildSmbiosBaseBoardStr(virSysinfoBaseBoardDefPtr def) } if (virBufferCheckError(&buf) < 0) - goto error; + return NULL; return virBufferContentAndReset(&buf); - - error: - return NULL; } @@ -6210,12 +6090,9 @@ qemuBuildSmbiosChassisStr(virSysinfoChassisDefPtr def) } if (virBufferCheckError(&buf) < 0) - goto error; + return NULL; return virBufferContentAndReset(&buf); - - error: - return NULL; } @@ -6388,7 +6265,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; } @@ -6417,7 +6294,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 @@ -6431,7 +6308,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; @@ -6455,19 +6332,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; } @@ -6655,7 +6529,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, @@ -6668,7 +6542,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); @@ -6680,7 +6554,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) { @@ -6705,9 +6579,6 @@ qemuBuildBootCommandLine(virCommandPtr cmd, } return 0; - - error: - return -1; } @@ -6848,13 +6719,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: @@ -6867,7 +6737,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"); } @@ -6885,7 +6755,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; @@ -6902,7 +6772,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) @@ -6926,9 +6796,7 @@ qemuBuildCpuModelArgStr(virQEMUDriverPtr driver, } } - ret = 0; - cleanup: - return ret; + return 0; } static int @@ -6940,7 +6808,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; @@ -6948,7 +6815,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 @@ -7114,9 +6981,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); @@ -7136,11 +7003,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) { @@ -7148,10 +7015,7 @@ qemuBuildCpuCommandLine(virCommandPtr cmd, virCommandAddArgFormat(cmd, "%s%s", cpu, NULLSTR_EMPTY(cpu_flags)); } - ret = 0; - - cleanup: - return ret; + return 0; } @@ -7254,7 +7118,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 @@ -7310,7 +7173,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", @@ -7333,7 +7196,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"); @@ -7341,7 +7204,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, @@ -7366,7 +7229,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", @@ -7407,7 +7270,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; @@ -7419,7 +7282,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: @@ -7427,7 +7290,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; @@ -7449,14 +7312,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); @@ -7467,7 +7330,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", @@ -7482,14 +7345,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); @@ -7502,14 +7365,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); @@ -7530,9 +7393,7 @@ qemuBuildMachineCommandLine(virCommandPtr cmd, virCommandAddArgBuffer(cmd, &buf); - ret = 0; - cleanup: - return ret; + return 0; } @@ -7906,7 +7767,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) @@ -7931,7 +7791,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", @@ -7940,13 +7800,11 @@ qemuBuildGraphicsSDLCommandLine(virQEMUDriverConfigPtr cfg ATTRIBUTE_UNUSED, } if (virBufferCheckError(&opt) < 0) - goto cleanup; + return -1; virCommandAddArgBuffer(cmd, &opt); - ret = 0; - cleanup: - return ret; + return 0; } @@ -7963,13 +7821,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) { @@ -7988,7 +7846,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) { @@ -8030,7 +7888,7 @@ qemuBuildGraphicsVNCCommandLine(virQEMUDriverConfigPtr cfg, if (gfxPriv->secinfo) { if (qemuBuildObjectSecretCommandLine(cmd, gfxPriv->secinfo) < 0) - goto error; + return -1; secretAlias = gfxPriv->secinfo->s.aes.alias; } @@ -8041,7 +7899,7 @@ qemuBuildGraphicsVNCCommandLine(virQEMUDriverConfigPtr cfg, secretAlias, gfxPriv->tlsAlias, qemuCaps) < 0) - goto error; + return -1; virBufferAsprintf(&opt, ",tls-creds=%s", gfxPriv->tlsAlias); } else { @@ -8080,9 +7938,6 @@ qemuBuildGraphicsVNCCommandLine(virQEMUDriverConfigPtr cfg, virCommandAddEnvString(cmd, "QEMU_AUDIO_DRV=none"); return 0; - - error: - return -1; } @@ -8103,13 +7958,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) { @@ -8118,7 +7973,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="); @@ -8139,7 +7994,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; @@ -8186,7 +8041,7 @@ qemuBuildGraphicsSPICECommandLine(virQEMUDriverConfigPtr cfg, default: virReportEnumRangeError(virDomainGraphicsSpiceMouseMode, graphics->data.spice.mousemode); - goto error; + return -1; } } @@ -8210,7 +8065,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; @@ -8220,7 +8075,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; @@ -8238,7 +8093,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)); @@ -8250,7 +8105,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)); @@ -8283,7 +8138,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,"); } @@ -8293,7 +8148,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 @@ -8305,7 +8160,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="); @@ -8331,9 +8186,6 @@ qemuBuildGraphicsSPICECommandLine(virQEMUDriverConfigPtr cfg, virCommandAddEnvString(cmd, "QEMU_AUDIO_DRV=spice"); return 0; - - error: - return -1; } @@ -8343,7 +8195,6 @@ qemuBuildGraphicsEGLHeadlessCommandLine(virQEMUDriverConfigPtr cfg ATTRIBUTE_UNU virQEMUCapsPtr qemuCaps, virDomainGraphicsDefPtr graphics) { - int ret = -1; VIR_AUTOCLEAN(virBuffer) opt = VIR_BUFFER_INITIALIZER; virBufferAddLit(&opt, "egl-headless"); @@ -8353,7 +8204,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="); @@ -8362,14 +8213,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; } @@ -8436,7 +8285,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: @@ -8444,7 +8292,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: @@ -8463,12 +8311,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 @@ -9052,15 +8898,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 * @@ -9117,7 +8960,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, @@ -9125,7 +8968,6 @@ qemuBuildShmemBackendMemProps(virDomainShmemDefPtr shmem) "b:share", true, NULL); - cleanup: return ret; } @@ -9573,14 +9415,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", @@ -9591,7 +9433,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="); @@ -9628,15 +9470,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; } @@ -9759,7 +9598,7 @@ qemuBuildTPMDevStr(const virDomainDef *def, case VIR_DOMAIN_TPM_MODEL_LAST: default: virReportEnumRangeError(virDomainTPMModel, tpm->model); - goto error; + return NULL; } if (!virQEMUCapsGet(qemuCaps, flag)) { @@ -9767,19 +9606,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; } @@ -9832,17 +9668,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); @@ -9856,20 +9692,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; } @@ -9932,7 +9765,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; @@ -9946,23 +9778,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 @@ -10115,15 +9945,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); } @@ -10147,7 +9974,6 @@ qemuBuildManagedPRCommandLine(virCommandPtr cmd, { VIR_AUTOCLEAN(virBuffer) buf = VIR_BUFFER_INITIALIZER; VIR_AUTOPTR(virJSONValue) props = NULL; - int ret = -1; if (!virDomainDefHasManagedPR(def)) return 0; @@ -10156,14 +9982,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; } @@ -10293,27 +10117,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); } @@ -10325,22 +10144,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; } @@ -10377,7 +10193,7 @@ qemuBuildCommandLine(virQEMUDriverPtr driver, qemuCaps, migrateURI, snapshot, vmop); if (qemuBuildCommandLineValidate(driver, def) < 0) - goto error; + return NULL; cmd = virCommandNew(def->emulator); @@ -10401,57 +10217,57 @@ qemuBuildCommandLine(virQEMUDriverPtr driver, } if (qemuBuildNameCommandLine(cmd, cfg, def, qemuCaps) < 0) - goto error; + return NULL; if (!standalone) virCommandAddArg(cmd, "-S"); /* freeze CPU */ if (qemuBuildMasterKeyCommandLine(cmd, priv) < 0) - goto error; + return NULL; if (qemuBuildManagedPRCommandLine(cmd, def, priv) < 0) - goto error; + return NULL; if (enableFips) virCommandAddArg(cmd, "-enable-fips"); if (qemuBuildMachineCommandLine(cmd, cfg, def, qemuCaps) < 0) - goto error; + return NULL; qemuBuildTSEGCommandLine(cmd, def); if (qemuBuildCpuCommandLine(cmd, driver, def, qemuCaps) < 0) - goto error; + return NULL; qemuBuildDomainLoaderCommandLine(cmd, def); if (!migrateURI && !snapshot && qemuDomainAlignMemorySizes(def) < 0) - goto error; + return NULL; if (qemuBuildMemCommandLine(cmd, cfg, def, qemuCaps, priv) < 0) - goto error; + return NULL; if (qemuBuildSmpCommandLine(cmd, def) < 0) - goto error; + return NULL; if (qemuBuildIOThreadCommandLine(cmd, def) < 0) - goto error; + return NULL; if (virDomainNumaGetNodeCount(def->numa) && qemuBuildNumaArgStr(cfg, def, cmd, priv) < 0) - goto error; + return NULL; if (qemuBuildMemoryDeviceCommandLine(cmd, cfg, def, priv) < 0) - goto error; + return NULL; virUUIDFormat(def->uuid, uuid); virCommandAddArgList(cmd, "-uuid", uuid, NULL); if (qemuBuildSmbiosCommandLine(cmd, driver, def) < 0) - goto error; + return NULL; if (qemuBuildVMGenIDCommandLine(cmd, def, qemuCaps) < 0) - goto error; + return NULL; /* * NB, -nographic *MUST* come before any serial, or monitor @@ -10475,110 +10291,110 @@ qemuBuildCommandLine(virQEMUDriverPtr driver, virCommandAddArg(cmd, "-nodefaults"); if (qemuBuildSgaCommandLine(cmd, def, qemuCaps) < 0) - goto error; + return NULL; if (qemuBuildMonitorCommandLine(logManager, secManager, cmd, cfg, def, priv) < 0) - goto error; + return NULL; if (qemuBuildClockCommandLine(cmd, def, qemuCaps) < 0) - goto error; + return NULL; if (qemuBuildPMCommandLine(cmd, def, priv) < 0) - goto error; + return NULL; if (qemuBuildBootCommandLine(cmd, def, qemuCaps) < 0) - goto error; + return NULL; if (qemuBuildIOMMUCommandLine(cmd, def, qemuCaps) < 0) - goto error; + return NULL; if (qemuBuildGlobalControllerCommandLine(cmd, def, qemuCaps) < 0) - goto error; + return NULL; if (qemuBuildControllersCommandLine(cmd, def, qemuCaps) < 0) - goto error; + return NULL; if (qemuBuildHubCommandLine(cmd, def, qemuCaps) < 0) - goto error; + return NULL; if (qemuBuildControllersByTypeCommandLine(cmd, def, qemuCaps, VIR_DOMAIN_CONTROLLER_TYPE_CCID) < 0) - goto error; + return NULL; if (qemuBuildDisksCommandLine(cmd, def, qemuCaps) < 0) - goto error; + return NULL; if (qemuBuildFilesystemCommandLine(cmd, def, qemuCaps) < 0) - goto error; + return NULL; if (qemuBuildNetCommandLine(driver, logManager, secManager, cmd, def, qemuCaps, vmop, standalone, nnicindexes, nicindexes, &bootHostdevNet) < 0) - goto error; + return NULL; if (qemuBuildSmartcardCommandLine(logManager, secManager, cmd, cfg, def, qemuCaps, chardevStdioLogd) < 0) - goto error; + return NULL; if (qemuBuildSerialCommandLine(logManager, secManager, cmd, cfg, def, qemuCaps, chardevStdioLogd) < 0) - goto error; + return NULL; if (qemuBuildParallelsCommandLine(logManager, secManager, cmd, cfg, def, qemuCaps, chardevStdioLogd) < 0) - goto error; + return NULL; if (qemuBuildChannelsCommandLine(logManager, secManager, cmd, cfg, def, qemuCaps, chardevStdioLogd) < 0) - goto error; + return NULL; if (qemuBuildConsoleCommandLine(logManager, secManager, cmd, cfg, def, qemuCaps, chardevStdioLogd) < 0) - goto error; + return NULL; if (qemuBuildTPMCommandLine(cmd, def, qemuCaps) < 0) - goto error; + return NULL; if (qemuBuildInputCommandLine(cmd, def, qemuCaps) < 0) - goto error; + return NULL; if (qemuBuildGraphicsCommandLine(cfg, cmd, def, qemuCaps) < 0) - goto error; + return NULL; if (qemuBuildVideoCommandLine(cmd, def, qemuCaps) < 0) - goto error; + return NULL; if (qemuBuildSoundCommandLine(cmd, def, qemuCaps) < 0) - goto error; + return NULL; if (qemuBuildWatchdogCommandLine(cmd, def, qemuCaps) < 0) - goto error; + return NULL; if (qemuBuildRedirdevCommandLine(logManager, secManager, cmd, cfg, def, qemuCaps, chardevStdioLogd) < 0) - goto error; + return NULL; if (qemuBuildHostdevCommandLine(cmd, def, qemuCaps, &bootHostdevNet) < 0) - goto error; + return NULL; if (migrateURI) virCommandAddArgList(cmd, "-incoming", migrateURI, NULL); if (qemuBuildMemballoonCommandLine(cmd, def, qemuCaps) < 0) - goto error; + return NULL; if (qemuBuildRNGCommandLine(logManager, secManager, cmd, cfg, def, qemuCaps, chardevStdioLogd) < 0) - goto error; + return NULL; if (qemuBuildNVRAMCommandLine(cmd, def, qemuCaps) < 0) - goto error; + return NULL; if (qemuBuildVMCoreInfoCommandLine(cmd, def, qemuCaps) < 0) - goto error; + return NULL; if (qemuBuildSEVCommandLine(vm, cmd, def->sev) < 0) - goto error; + return NULL; if (snapshot) virCommandAddArgList(cmd, "-loadvm", snapshot->def->name, NULL); @@ -10595,21 +10411,21 @@ qemuBuildCommandLine(virQEMUDriverPtr driver, } if (qemuBuildSeccompSandboxCommandLine(cmd, cfg, qemuCaps) < 0) - goto error; + return NULL; if (qemuBuildPanicCommandLine(cmd, def, qemuCaps) < 0) - goto error; + return NULL; for (i = 0; i < def->nshmems; i++) { if (qemuBuildShmemCommandLine(logManager, secManager, cmd, cfg, def, def->shmems[i], qemuCaps, chardevStdioLogd)) - goto error; + return NULL; } if (def->vsock && qemuBuildVsockCommandLine(cmd, def, def->vsock, qemuCaps) < 0) - goto error; + return NULL; /* In some situations, eg. VFIO passthrough, QEMU might need to lock a * significant amount of memory, so we need to set the limit accordingly */ @@ -10620,9 +10436,6 @@ qemuBuildCommandLine(virQEMUDriverPtr driver, virCommandAddArgList(cmd, "-msg", "timestamp=on", NULL); VIR_RETURN_PTR(cmd); - - error: - return NULL; } @@ -10652,7 +10465,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; @@ -10666,7 +10479,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", @@ -10674,16 +10487,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 @@ -10716,12 +10526,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: @@ -10730,9 +10540,7 @@ qemuBuildChannelChrDeviceStr(char **deviceStr, return ret; } - ret = 0; - cleanup: - return ret; + return 0; } static int @@ -10740,18 +10548,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: @@ -10766,12 +10572,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 -- GitLab