From nobody Sun Feb 8 16:11:58 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1566305999; cv=none; d=zoho.com; s=zohoarc; b=VNMOo8JwbkiVg/gCheV42+0naG3DWTKHjV93yCOT33inDbJ19qTfcLpNQ4VEkklhL2I/OX4OvxYHDaKlDRAnu3SdzLuzg590xDFDWbWsK8Mto+01shwZdd6o7rmLmxFsqvCokJPHGqlC6dGip6k2n5Duo0EBlBSzYSTr1hvEAfc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1566305999; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=gE+krbTIXt2EfiDaZ2RVIGrU/rqNW7x6+ljW0u9g2S4=; b=M0rGWFO2BJmU3UD8zNXn/7hDmUlXiMowIgQn8e1YkTXus9l6wEPhL9GJghfuJrdn9l2dg1R9UIQmz6jkXh1yNlkb3oSWjqFxEGh9mBiWPetlZA+CAT9hizY7gUeboz/FuLT5GzzYqUwP7PG0QYaaAcd5Wlk3z6Fu4uBsCRbWucY= ARC-Authentication-Results: i=1; mx.zoho.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1566305999396182.70220246855445; Tue, 20 Aug 2019 05:59:59 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 0A955C0546F2; Tue, 20 Aug 2019 12:59:58 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id D48104274; Tue, 20 Aug 2019 12:59:57 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 96EA5180BAA1; Tue, 20 Aug 2019 12:59:57 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id x7KCxmql023283 for ; Tue, 20 Aug 2019 08:59:48 -0400 Received: by smtp.corp.redhat.com (Postfix) id 396C013836; Tue, 20 Aug 2019 12:59:48 +0000 (UTC) Received: from icr.brq.redhat.com (unknown [10.43.2.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id 68AFC1E4 for ; Tue, 20 Aug 2019 12:59:47 +0000 (UTC) From: =?UTF-8?q?J=C3=A1n=20Tomko?= To: libvir-list@redhat.com Date: Tue, 20 Aug 2019 14:59:16 +0200 Message-Id: <4968e1eccfda0d90de9213f7c2090a12d9951892.1566305923.git.jtomko@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 17/19] qemu_command: remove unnecessary labels and ret variables X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.32]); Tue, 20 Aug 2019 12:59:58 +0000 (UTC) The recent cleanups allow us to clean up the code a bit. Signed-off-by: J=C3=A1n Tomko --- 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 =3D -1; VIR_AUTOFREE(char *) alias =3D NULL; VIR_AUTOFREE(char *) path =3D NULL; VIR_AUTOCLEAN(virBuffer) buf =3D VIR_BUFFER_INITIALIZER; @@ -225,17 +224,14 @@ qemuBuildMasterKeyCommandLine(virCommandPtr cmd, * existence of socket files before using. */ if (!(path =3D qemuDomainGetMasterKeyFilePath(priv->libDir))) - goto cleanup; + return -1; =20 virCommandAddArg(cmd, "-object"); virBufferAsprintf(&buf, "secret,id=3D%s,format=3Draw,file=3D", alias); virQEMUBuildBufferEscapeComma(&buf, path); virCommandAddArgBuffer(cmd, &buf); =20 - ret =3D 0; - - cleanup: - return ret; + return 0; } =20 =20 @@ -298,7 +294,6 @@ qemuBuildDeviceAddressStr(virBufferPtr buf, virDomainDeviceInfoPtr info, virQEMUCapsPtr qemuCaps) { - int ret =3D -1; VIR_AUTOFREE(char *) devStr =3D NULL; const char *contAlias =3D NULL; bool contIsPHB =3D false; @@ -308,7 +303,7 @@ qemuBuildDeviceAddressStr(virBufferPtr buf, size_t i; =20 if (!(devStr =3D virPCIDeviceAddressAsString(&info->addr.pci))) - goto cleanup; + return -1; for (i =3D 0; i < domainDef->ncontrollers; i++) { virDomainControllerDefPtr cont =3D domainDef->controllers[i]; =20 @@ -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; } =20 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; } =20 if (contIsPHB && contTargetIndex > 0) { @@ -376,7 +371,7 @@ qemuBuildDeviceAddressStr(virBufferPtr buf, if (!(contAlias =3D virDomainControllerAliasFind(domainDef, VIR_DOMAIN_CONTROLL= ER_TYPE_USB, info->addr.usb.bus)= )) - goto cleanup; + return -1; virBufferAsprintf(buf, ",bus=3D%s.0", contAlias); if (virDomainUSBAddressPortIsValid(info->addr.usb.port)) { virBufferAddLit(buf, ",port=3D"); @@ -397,9 +392,7 @@ qemuBuildDeviceAddressStr(virBufferPtr buf, info->addr.isa.irq); } =20 - ret =3D 0; - cleanup: - return ret; + return 0; } =20 =20 @@ -733,22 +726,18 @@ qemuBuildObjectSecretCommandLine(virCommandPtr cmd, qemuDomainSecretInfoPtr secinfo) { VIR_AUTOCLEAN(virBuffer) buf =3D VIR_BUFFER_INITIALIZER; - int ret =3D -1; VIR_AUTOPTR(virJSONValue) props =3D NULL; =20 if (qemuBuildSecretInfoProps(secinfo, &props) < 0) return -1; =20 if (virQEMUBuildObjectCommandlineFromJSON(&buf, props) < 0) - goto cleanup; + return -1; =20 virCommandAddArg(cmd, "-object"); virCommandAddArgBuffer(cmd, &buf); =20 - ret =3D 0; - - cleanup: - return ret; + return 0; } =20 =20 @@ -929,23 +918,19 @@ qemuBuildTLSx509CommandLine(virCommandPtr cmd, virQEMUCapsPtr qemuCaps) { VIR_AUTOCLEAN(virBuffer) buf =3D VIR_BUFFER_INITIALIZER; - int ret =3D -1; VIR_AUTOPTR(virJSONValue) props =3D NULL; =20 if (qemuBuildTLSx509BackendProps(tlspath, isListen, verifypeer, alias, certEncSecretAlias, qemuCaps, &props)= < 0) - goto cleanup; + return -1; =20 if (virQEMUBuildObjectCommandlineFromJSON(&buf, props) < 0) - goto cleanup; + return -1; =20 virCommandAddArg(cmd, "-object"); virCommandAddArgBuffer(cmd, &buf); =20 - ret =3D 0; - - cleanup: - return ret; + return 0; } =20 =20 @@ -954,22 +939,18 @@ qemuBuildNetworkDriveURI(virStorageSourcePtr src, qemuDomainSecretInfoPtr secinfo) { VIR_AUTOPTR(virURI) uri =3D NULL; - char *ret =3D NULL; =20 if (!(uri =3D qemuBlockStorageSourceGetURI(src))) - goto cleanup; + return NULL; =20 if (src->hosts->socket && virAsprintf(&uri->query, "socket=3D%s", src->hosts->socket) < 0) - goto cleanup; + return NULL; =20 if (qemuBuildGeneralSecinfoURI(uri, secinfo) < 0) - goto cleanup; - - ret =3D virURIFormat(uri); + return NULL; =20 - cleanup: - return ret; + return virURIFormat(uri); } =20 =20 @@ -977,9 +958,9 @@ static char * qemuBuildNetworkDriveStr(virStorageSourcePtr src, qemuDomainSecretInfoPtr secinfo) { - char *ret =3D NULL; VIR_AUTOCLEAN(virBuffer) buf =3D VIR_BUFFER_INITIALIZER; size_t i; + char *ret =3D NULL; =20 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->prot= ocol)); - goto cleanup; + return NULL; } =20 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; } =20 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; } =20 if (src->path) virBufferAsprintf(&buf, ":exportname=3D%s", src->path); =20 if (virBufferCheckError(&buf) < 0) - goto cleanup; + return NULL; =20 - ret =3D virBufferContentAndReset(&buf); - goto cleanup; + return virBufferContentAndReset(&buf); } /* NBD code uses URI formatting scheme as others in some cases= */ ret =3D qemuBuildNetworkDriveURI(src, secinfo); @@ -1050,21 +1030,21 @@ qemuBuildNetworkDriveStr(virStorageSourcePtr src, if (!src->path) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("missing disk source for 'sheepdog' proto= col")); - goto cleanup; + return NULL; } =20 if (src->nhosts =3D=3D 0) { if (virAsprintf(&ret, "sheepdog:%s", src->path) < 0) - goto cleanup; + return NULL; } else if (src->nhosts =3D=3D 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 ho= st")); - goto cleanup; + return NULL; } =20 break; @@ -1074,7 +1054,7 @@ qemuBuildNetworkDriveStr(virStorageSourcePtr src, virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("':' not allowed in RBD source volume nam= e '%s'"), src->path); - goto cleanup; + return NULL; } =20 virBufferStrcat(&buf, "rbd:", src->volume, "/", src->path, NUL= L); @@ -1083,7 +1063,7 @@ qemuBuildNetworkDriveStr(virStorageSourcePtr src, virBufferEscape(&buf, '\\', ":", "@%s", src->snapshot); =20 if (qemuBuildRBDSecinfoURI(&buf, secinfo) < 0) - goto cleanup; + return NULL; =20 if (src->nhosts > 0) { virBufferAddLit(&buf, ":mon_host=3D"); @@ -1107,7 +1087,7 @@ qemuBuildNetworkDriveStr(virStorageSourcePtr src, virBufferEscape(&buf, '\\', ":", ":conf=3D%s", src->config= File); =20 if (virBufferCheckError(&buf) < 0) - goto cleanup; + return NULL; =20 ret =3D 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; =20 case VIR_STORAGE_NET_PROTOCOL_SSH: virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("'ssh' protocol is not yet supported")); - goto cleanup; + return NULL; =20 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; } =20 - cleanup: - return ret; } =20 @@ -1142,7 +1120,6 @@ qemuGetDriveSourceString(virStorageSourcePtr src, char **source) { int actualType =3D virStorageSourceGetActualType(src); - int ret =3D -1; =20 *source =3D NULL; =20 @@ -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; =20 break; =20 case VIR_STORAGE_TYPE_NETWORK: if (!(*source =3D qemuBuildNetworkDriveStr(src, secinfo))) - goto cleanup; + return -1; break; =20 case VIR_STORAGE_TYPE_VOLUME: @@ -1170,10 +1147,7 @@ qemuGetDriveSourceString(virStorageSourcePtr src, break; } =20 - ret =3D 0; - - cleanup: - return ret; + return 0; } =20 =20 @@ -1510,18 +1484,16 @@ qemuCheckDiskConfig(virDomainDiskDefPtr disk, bool qemuCheckFips(void) { - bool ret =3D false; - if (virFileExists("/proc/sys/crypto/fips_enabled")) { VIR_AUTOFREE(char *) buf =3D NULL; =20 if (virFileReadAll("/proc/sys/crypto/fips_enabled", 10, &buf) < 0) - return ret; + return false; if (STREQ(buf, "1\n")) - ret =3D true; + return true; } =20 - return ret; + return false; } =20 =20 @@ -1635,7 +1607,6 @@ qemuBuildDriveSourceStr(virDomainDiskDefPtr disk, VIR_AUTOPTR(virJSONValue) srcprops =3D NULL; VIR_AUTOFREE(char *) source =3D NULL; bool rawluks =3D false; - int ret =3D -1; =20 if (srcpriv) { secinfo =3D srcpriv->secinfo; @@ -1644,19 +1615,18 @@ qemuBuildDriveSourceStr(virDomainDiskDefPtr disk, =20 if (qemuDiskSourceNeedsProps(disk->src, qemuCaps) && !(srcprops =3D qemuDiskSourceGetProps(disk->src))) - goto cleanup; + return -1; =20 if (!srcprops && qemuGetDriveSourceString(disk->src, secinfo, &source) < 0) - goto cleanup; + return -1; =20 /* nothing to format if the drive is empty */ if (!(source || srcprops) || ((disk->device =3D=3D VIR_DOMAIN_DISK_DEVICE_FLOPPY || disk->device =3D=3D VIR_DOMAIN_DISK_DEVICE_CDROM) && disk->tray_status =3D=3D VIR_DOMAIN_DISK_TRAY_OPEN)) { - ret =3D 0; - goto cleanup; + return 0; } =20 if (actualType =3D=3D VIR_STORAGE_TYPE_BLOCK && @@ -1665,7 +1635,7 @@ qemuBuildDriveSourceStr(virDomainDiskDefPtr disk, disk->src->type =3D=3D VIR_STORAGE_TYPE_VOLUME ? _("tray status 'open' is invalid for block type vol= ume") : _("tray status 'open' is invalid for block type dis= k")); - goto cleanup; + return -1; } =20 if (source) { @@ -1688,10 +1658,10 @@ qemuBuildDriveSourceStr(virDomainDiskDefPtr disk, virBufferAsprintf(buf, ",file.debug=3D%d", disk->src->debugLev= el); =20 if (qemuBuildDriveSourcePR(buf, disk) < 0) - goto cleanup; + return -1; } else { if (!(source =3D virQEMUBuildDriveCommandlineFromJSON(srcprops))) - goto cleanup; + return -1; =20 virBufferAdd(buf, source, -1); } @@ -1716,10 +1686,7 @@ qemuBuildDriveSourceStr(virDomainDiskDefPtr disk, virBufferAsprintf(buf, "format=3D%s,", qemuformat); } =20 - ret =3D 0; - - cleanup: - return ret; + return 0; } =20 =20 @@ -2392,7 +2359,6 @@ qemuBuildFloppyCommandLineControllerOptions(virComman= dPtr cmd, VIR_AUTOFREE(char *) backendStr =3D NULL; VIR_AUTOFREE(char *) bootindexStr =3D NULL; size_t i; - int ret =3D -1; =20 virBufferAddLit(&fdc_opts, "isa-fdc,"); =20 @@ -2418,16 +2384,16 @@ qemuBuildFloppyCommandLineControllerOptions(virComm= andPtr cmd, =20 if (bootindex && virAsprintf(&bootindexStr, "bootindex%c=3D%u", driveLetter, bo= otindex) < 0) - goto cleanup; + return -1; =20 /* with -blockdev we setup the floppy device and it's backend with= -device */ if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_BLOCKDEV)) { if (qemuDomainDiskGetBackendAlias(disk, qemuCaps, &backendAlia= s) < 0) - goto cleanup; + return -1; =20 if (backendAlias && virAsprintf(&backendStr, "drive%c=3D%s", driveLetter, back= endAlias) < 0) - goto cleanup; + return -1; } =20 if (!explicitfdc) { @@ -2457,10 +2423,7 @@ qemuBuildFloppyCommandLineControllerOptions(virComma= ndPtr cmd, virCommandAddArgBuffer(cmd, &fdc_opts); } =20 - ret =3D 0; - - cleanup: - return ret; + return 0; } =20 =20 @@ -2922,7 +2885,7 @@ qemuBuildControllerDevStr(const virDomainDef *domainD= ef, 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; } =20 if (def->iothread) { @@ -2931,7 +2894,7 @@ qemuBuildControllerDevStr(const virDomainDef *domainD= ef, } =20 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 *domai= nDef, virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("Unsupported controller model: %s"), virDomainControllerModelSCSITypeToString(def->m= odel)); - 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=3D%s", def->info.alias); break; @@ -2965,7 +2928,7 @@ qemuBuildControllerDevStr(const virDomainDef *domainD= ef, case VIR_DOMAIN_CONTROLLER_TYPE_VIRTIO_SERIAL: if (qemuBuildVirtioDevStr(&buf, "virtio-serial", qemuCaps, VIR_DOMAIN_DEVICE_CONTROLLER, def) < 0) { - goto error; + return -1; } =20 virBufferAsprintf(&buf, ",id=3D%s", def->info.alias); @@ -2978,7 +2941,7 @@ qemuBuildControllerDevStr(const virDomainDef *domainD= ef, def->opts.vioserial.vectors); } if (qemuBuildVirtioOptionsStr(&buf, def->virtio, qemuCaps) < 0) - goto error; + return -1; break; =20 case VIR_DOMAIN_CONTROLLER_TYPE_CCID: @@ -2991,7 +2954,7 @@ qemuBuildControllerDevStr(const virDomainDef *domainD= ef, =20 case VIR_DOMAIN_CONTROLLER_TYPE_USB: if (qemuBuildUSBControllerDevStr(domainDef, def, qemuCaps, &buf) = =3D=3D -1) - goto error; + return -1; =20 break; =20 @@ -3003,7 +2966,7 @@ qemuBuildControllerDevStr(const virDomainDef *domainD= ef, if (def->model =3D=3D VIR_DOMAIN_CONTROLLER_MODEL_PCI_ROOT && pciopts->modelName =3D=3D VIR_DOMAIN_CONTROLLER_PCI_MODEL_NAME= _SPAPR_PCI_HOST_BRIDGE && pciopts->targetIndex =3D=3D 0) { - goto done; + return 0; } =20 if (!modelName) { @@ -3051,13 +3014,13 @@ qemuBuildControllerDevStr(const virDomainDef *domai= nDef, 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 *domainD= ef, virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("Unsupported controller type: %s"), virDomainControllerTypeToString(def->type)); - goto error; + return -1; } =20 if (def->queues) @@ -3084,17 +3047,13 @@ qemuBuildControllerDevStr(const virDomainDef *domai= nDef, qemuBuildIoEventFdStr(&buf, def->ioeventfd, qemuCaps); =20 if (qemuBuildDeviceAddressStr(&buf, domainDef, &def->info, qemuCaps) <= 0) - goto error; + return -1; =20 - done: if (virBufferCheckError(&buf) < 0) - goto error; + return -1; =20 *devstr =3D virBufferContentAndReset(&buf); return 0; - - error: - return -1; } =20 =20 @@ -3198,7 +3157,6 @@ qemuBuildControllersByTypeCommandLine(virCommandPtr c= md, virQEMUCapsPtr qemuCaps, virDomainControllerType type) { - int ret =3D -1; size_t i; =20 for (i =3D 0; i < def->ncontrollers; i++) { @@ -3237,20 +3195,18 @@ qemuBuildControllersByTypeCommandLine(virCommandPtr= cmd, } =20 if (qemuBuildControllerDevStr(def, cont, qemuCaps, &devstr) < 0) - goto cleanup; + return -1; =20 if (devstr) { if (qemuCommandAddExtDevice(cmd, &cont->info) < 0) - goto cleanup; + return -1; =20 virCommandAddArg(cmd, "-device"); virCommandAddArg(cmd, devstr); } } =20 - ret =3D 0; - cleanup: - return ret; + return 0; } =20 =20 @@ -3286,20 +3242,16 @@ qemuBuildControllersCommandLine(virCommandPtr cmd, VIR_DOMAIN_CONTROLLER_TYPE_SATA, VIR_DOMAIN_CONTROLLER_TYPE_VIRTIO_SERIAL, }; - int ret =3D -1; =20 for (i =3D 0; i < ARRAY_CARDINALITY(contOrder); i++) { if (qemuBuildControllersByTypeCommandLine(cmd, def, qemuCaps, cont= Order[i]) < 0) - goto cleanup; + return -1; } =20 if (qemuBuildLegacyUSBControllerCommandLine(cmd, def) < 0) - goto cleanup; - - ret =3D 0; + return -1; =20 - cleanup: - return ret; + return 0; } =20 =20 @@ -3681,7 +3633,6 @@ qemuBuildMemoryDimmBackendStr(virBufferPtr buf, { VIR_AUTOPTR(virJSONValue) props =3D NULL; VIR_AUTOFREE(char *) alias =3D NULL; - int ret =3D -1; =20 if (!mem->info.alias) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", @@ -3690,20 +3641,16 @@ qemuBuildMemoryDimmBackendStr(virBufferPtr buf, } =20 if (virAsprintf(&alias, "mem%s", mem->info.alias) < 0) - goto cleanup; + return -1; =20 if (qemuBuildMemoryBackendProps(&props, alias, cfg, priv, def, mem, true) < 0) - goto cleanup; + return -1; =20 if (virQEMUBuildObjectCommandlineFromJSON(buf, props) < 0) - goto cleanup; - - ret =3D 0; - - cleanup: + return -1; =20 - return ret; + return 0; } =20 =20 @@ -4121,20 +4068,17 @@ qemuBuildWatchdogDevStr(const virDomainDef *def, if (!model) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("missing watchdog model")); - goto error; + return NULL; } =20 virBufferAsprintf(&buf, "%s,id=3D%s", model, dev->info.alias); if (qemuBuildDeviceAddressStr(&buf, def, &dev->info, qemuCaps) < 0) - goto error; + return NULL; =20 if (virBufferCheckError(&buf) < 0) - goto error; + return NULL; =20 return virBufferContentAndReset(&buf); - - error: - return NULL; } =20 =20 @@ -4194,12 +4138,12 @@ qemuBuildMemballoonCommandLine(virCommandPtr cmd, if (qemuBuildVirtioDevStr(&buf, "virtio-balloon", qemuCaps, VIR_DOMAIN_DEVICE_MEMBALLOON, def->memballoon) < 0) { - goto error; + return -1; } =20 virBufferAsprintf(&buf, ",id=3D%s", def->memballoon->info.alias); if (qemuBuildDeviceAddressStr(&buf, def, &def->memballoon->info, qemuC= aps) < 0) - goto error; + return -1; =20 if (def->memballoon->autodeflate !=3D VIR_TRISTATE_SWITCH_ABSENT) { virBufferAsprintf(&buf, ",deflate-on-oom=3D%s", @@ -4207,17 +4151,14 @@ qemuBuildMemballoonCommandLine(virCommandPtr cmd, } =20 if (qemuBuildVirtioOptionsStr(&buf, def->memballoon->virtio, qemuCaps)= < 0) - goto error; + return -1; =20 if (qemuCommandAddExtDevice(cmd, &def->memballoon->info) < 0) - goto error; + return -1; =20 virCommandAddArg(cmd, "-device"); virCommandAddArgBuffer(cmd, &buf); return 0; - - error: - return -1; } =20 =20 @@ -4233,16 +4174,13 @@ qemuBuildNVRAMDevStr(virDomainNVRAMDefPtr dev) } else { virReportError(VIR_ERR_XML_ERROR, "%s", _("nvram address type must be spaprvio")); - goto error; + return NULL; } =20 if (virBufferCheckError(&buf) < 0) - goto error; + return NULL; =20 return virBufferContentAndReset(&buf); - - error: - return NULL; } =20 =20 @@ -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; } =20 virBufferAsprintf(&buf, ",id=3D%s", dev->info.alias); @@ -4324,18 +4262,15 @@ qemuBuildVirtioInputDevStr(const virDomainDef *def, } =20 if (qemuBuildDeviceAddressStr(&buf, def, &dev->info, qemuCaps) < 0) - goto error; + return NULL; =20 if (qemuBuildVirtioOptionsStr(&buf, dev->virtio, qemuCaps) < 0) - goto error; + return NULL; =20 if (virBufferCheckError(&buf) < 0) - goto error; + return NULL; =20 return virBufferContentAndReset(&buf); - - error: - return NULL; } =20 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=3D%s", dev->info.alias); break; } =20 if (qemuBuildDeviceAddressStr(&buf, def, &dev->info, qemuCaps) < 0) - goto error; + return NULL; =20 if (virBufferCheckError(&buf) < 0) - goto error; + return NULL; =20 return virBufferContentAndReset(&buf); - - error: - return NULL; } =20 =20 @@ -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; } =20 virBufferAsprintf(&buf, "%s,id=3D%s", model, sound->info.alias); if (qemuBuildDeviceAddressStr(&buf, def, &sound->info, qemuCaps) < 0) - goto error; + return NULL; =20 if (virBufferCheckError(&buf) < 0) - goto error; + return NULL; =20 return virBufferContentAndReset(&buf); - - error: - return NULL; } =20 =20 @@ -4518,16 +4447,13 @@ qemuBuildSoundCodecStr(virDomainSoundDefPtr sound, if (flags =3D=3D -1 || !virQEMUCapsGet(qemuCaps, flags)) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("%s not supported in this QEMU binary"), stype); - goto error; + return NULL; } =20 virBufferAsprintf(&buf, "%s,id=3D%s-codec%d,bus=3D%s.0,cad=3D%d", stype, sound->info.alias, codec->cad, sound->info.al= ias, codec->cad); =20 return virBufferContentAndReset(&buf); - - error: - return NULL; } =20 =20 @@ -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; } =20 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, } =20 if (qemuBuildDeviceAddressStr(&buf, def, &video->info, qemuCaps) < 0) - goto error; + return NULL; =20 if (qemuBuildVirtioOptionsStr(&buf, video->virtio, qemuCaps) < 0) - goto error; + return NULL; =20 if (virBufferCheckError(&buf) < 0) - goto error; + return NULL; =20 return virBufferContentAndReset(&buf); - - error: - return NULL; } =20 =20 @@ -4870,7 +4793,7 @@ qemuBuildPCIHostdevDevStr(const virDomainDef *def, virReportError(VIR_ERR_INTERNAL_ERROR, _("invalid PCI passthrough type '%s'"), virDomainHostdevSubsysPCIBackendTypeToString(backen= d)); - goto error; + return NULL; } =20 virBufferAddLit(&buf, ",host=3D"); @@ -4886,17 +4809,14 @@ qemuBuildPCIHostdevDevStr(const virDomainDef *def, if (bootIndex) virBufferAsprintf(&buf, ",bootindex=3D%u", bootIndex); if (qemuBuildDeviceAddressStr(&buf, def, dev->info, qemuCaps) < 0) - goto error; + return NULL; if (qemuBuildRomStr(&buf, dev->info) < 0) - goto error; + return NULL; =20 if (virBufferCheckError(&buf) < 0) - goto error; + return NULL; =20 return virBufferContentAndReset(&buf); - - error: - return NULL; } =20 =20 @@ -4924,15 +4844,12 @@ qemuBuildUSBHostdevDevStr(const virDomainDef *def, virBufferAsprintf(&buf, ",bootindex=3D%u", dev->info->bootIndex); =20 if (qemuBuildDeviceAddressStr(&buf, def, dev->info, qemuCaps) < 0) - goto error; + return NULL; =20 if (virBufferCheckError(&buf) < 0) - goto error; + return NULL; =20 return virBufferContentAndReset(&buf); - - error: - return NULL; } =20 =20 @@ -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; } =20 if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_USB_HUB)) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("usb-hub not supported by QEMU binary")); - goto error; + return NULL; } =20 virBufferAddLit(&buf, "usb-hub"); virBufferAsprintf(&buf, ",id=3D%s", dev->info.alias); if (qemuBuildDeviceAddressStr(&buf, def, &dev->info, qemuCaps) < 0) - goto error; + return NULL; =20 if (virBufferCheckError(&buf) < 0) - goto error; + return NULL; =20 return virBufferContentAndReset(&buf); - - error: - return NULL; } =20 =20 @@ -5009,7 +4923,6 @@ static char * qemuBuildSCSIiSCSIHostdevDrvStr(virDomainHostdevDefPtr dev, virQEMUCapsPtr qemuCaps) { - char *ret =3D NULL; VIR_AUTOCLEAN(virBuffer) buf =3D VIR_BUFFER_INITIALIZER; VIR_AUTOFREE(char *) netsource =3D NULL; VIR_AUTOPTR(virJSONValue) srcprops =3D NULL; @@ -5020,27 +4933,24 @@ qemuBuildSCSIiSCSIHostdevDrvStr(virDomainHostdevDef= Ptr dev, =20 if (qemuDiskSourceNeedsProps(iscsisrc->src, qemuCaps)) { if (!(srcprops =3D qemuDiskSourceGetProps(iscsisrc->src))) - goto cleanup; + return NULL; if (!(netsource =3D virQEMUBuildDriveCommandlineFromJSON(srcprops)= )) - goto cleanup; + return NULL; virBufferAsprintf(&buf, "%s,if=3Dnone,format=3Draw", netsource); } else { /* Rather than pull what we think we want - use the network disk c= ode */ if (!(netsource =3D qemuBuildNetworkDriveStr(iscsisrc->src, srcPri= v ? srcPriv->secinfo : NULL= ))) - goto cleanup; + return NULL; virBufferAddLit(&buf, "file=3D"); virQEMUBuildBufferEscapeComma(&buf, netsource); virBufferAddLit(&buf, ",if=3Dnone,format=3Draw"); } =20 if (virBufferCheckError(&buf) < 0) - goto cleanup; - - ret =3D virBufferContentAndReset(&buf); + return NULL; =20 - cleanup: - return ret; + return virBufferContentAndReset(&buf); } =20 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; } =20 if (qemuBuildVirtioDevStr(&buf, "vhost-scsi", qemuCaps, VIR_DOMAIN_DEVICE_HOSTDEV, dev) < 0) { - goto cleanup; + return NULL; } =20 virBufferAsprintf(&buf, ",wwpn=3D%s,vhostfd=3D%s,id=3D%s", @@ -5069,15 +4979,12 @@ qemuBuildSCSIVHostHostdevDevStr(const virDomainDef = *def, dev->info->alias); =20 if (qemuBuildDeviceAddressStr(&buf, def, dev->info, qemuCaps) < 0) - goto cleanup; + return NULL; =20 if (virBufferCheckError(&buf) < 0) - goto cleanup; + return NULL; =20 return virBufferContentAndReset(&buf); - - cleanup: - return NULL; } =20 char * @@ -5091,27 +4998,25 @@ qemuBuildSCSIHostdevDrvStr(virDomainHostdevDefPtr d= ev, =20 if (scsisrc->protocol =3D=3D VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_ISC= SI) { if (!(source =3D qemuBuildSCSIiSCSIHostdevDrvStr(dev, qemuCaps))) - goto error; + return NULL; virBufferAdd(&buf, source, -1); } else { if (!(source =3D qemuBuildSCSIHostHostdevDrvStr(dev))) - goto error; + return NULL; virBufferAsprintf(&buf, "file=3D/dev/%s,if=3Dnone,format=3Draw", s= ource); } =20 if (!(drivealias =3D qemuAliasFromHostdev(dev))) - goto error; + return NULL; virBufferAsprintf(&buf, ",id=3D%s", drivealias); =20 if (dev->readonly) virBufferAddLit(&buf, ",readonly=3Don"); =20 if (virBufferCheckError(&buf) < 0) - goto error; + return NULL; =20 return virBufferContentAndReset(&buf); - error: - return NULL; } =20 char * @@ -5125,21 +5030,21 @@ qemuBuildSCSIHostdevDevStr(const virDomainDef *def, =20 model =3D qemuDomainFindSCSIControllerModel(def, dev->info); if (model < 0) - goto error; + return NULL; =20 if (model =3D=3D VIR_DOMAIN_CONTROLLER_MODEL_SCSI_LSILOGIC) { if (dev->info->addr.drive.target !=3D 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; } =20 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; } } =20 @@ -5147,7 +5052,7 @@ qemuBuildSCSIHostdevDevStr(const virDomainDef *def, =20 if (!(contAlias =3D virDomainControllerAliasFind(def, VIR_DOMAIN_CONTR= OLLER_TYPE_SCSI, dev->info->addr.drive.c= ontroller))) - goto error; + return NULL; =20 if (model =3D=3D VIR_DOMAIN_CONTROLLER_MODEL_SCSI_LSILOGIC) { virBufferAsprintf(&buf, ",bus=3D%s.%d,scsi-id=3D%d", @@ -5163,18 +5068,16 @@ qemuBuildSCSIHostdevDevStr(const virDomainDef *def, } =20 if (!(driveAlias =3D qemuAliasFromHostdev(dev))) - goto error; + return NULL; virBufferAsprintf(&buf, ",drive=3D%s,id=3D%s", driveAlias, dev->info->= alias); =20 if (dev->info->bootIndex) virBufferAsprintf(&buf, ",bootindex=3D%u", dev->info->bootIndex); =20 if (virBufferCheckError(&buf) < 0) - goto error; + return NULL; =20 return virBufferContentAndReset(&buf); - error: - return NULL; } =20 static int @@ -5320,10 +5223,9 @@ qemuBuildChrChardevStr(virLogManagerPtr logManager, VIR_AUTOCLEAN(virBuffer) buf =3D VIR_BUFFER_INITIALIZER; bool telnet; VIR_AUTOFREE(char *) charAlias =3D NULL; - char *ret =3D NULL; =20 if (!(charAlias =3D qemuAliasChardevFromDevAlias(alias))) - goto cleanup; + return NULL; =20 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_LOG= D ? logManager : NULL, cmd, def, &buf, "path", dev->data.file.path, "append", dev->data.file.append) < = 0) - goto cleanup; + return NULL; break; =20 case VIR_DOMAIN_CHR_TYPE_PIPE: @@ -5420,20 +5322,20 @@ qemuBuildChrChardevStr(virLogManagerPtr logManager, if (chrSourcePriv && chrSourcePriv->secinfo) { if (qemuBuildObjectSecretCommandLine(cmd, chrSourcePriv->secinf= o) < 0) - goto cleanup; + return NULL; =20 tlsCertEncSecAlias =3D chrSourcePriv->secinfo->s.aes.alias; } =20 if (!(objalias =3D qemuAliasTLSObjFromSrcAlias(charAlias))) - goto cleanup; + return NULL; =20 if (qemuBuildTLSx509CommandLine(cmd, cfg->chardevTLSx509certdi= r, dev->data.tcp.listen, cfg->chardevTLSx509verify, tlsCertEncSecAlias, objalias, qemuCaps) < 0) { - goto cleanup; + return NULL; } =20 virBufferAsprintf(&buf, ",tls-creds=3D%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)de= f) < 0) - goto cleanup; + return NULL; int fd =3D qemuOpenChrChardevUNIXSocket(dev); if (qemuSecurityClearSocketLabel(secManager, (virDomainDefPtr)= def) < 0) { VIR_FORCE_CLOSE(fd); - goto cleanup; + return NULL; } if (fd < 0) - goto cleanup; + return NULL; =20 virBufferAsprintf(&buf, ",fd=3D%d", fd); =20 @@ -5485,27 +5387,25 @@ qemuBuildChrChardevStr(virLogManagerPtr logManager, virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("unsupported chardev '%s'"), virDomainChrTypeToString(dev->type)); - goto cleanup; + return NULL; } =20 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; } =20 if (virBufferCheckError(&buf) < 0) - goto cleanup; + return NULL; =20 - ret =3D virBufferContentAndReset(&buf); - cleanup: - return ret; + return virBufferContentAndReset(&buf); } =20 char * @@ -5515,17 +5415,16 @@ qemuBuildHostdevMediatedDevStr(const virDomainDef *= def, { VIR_AUTOCLEAN(virBuffer) buf =3D VIR_BUFFER_INITIALIZER; virDomainHostdevSubsysMediatedDevPtr mdevsrc =3D &dev->source.subsys.u= .mdev; - char *ret =3D NULL; VIR_AUTOFREE(char *) mdevPath =3D NULL; const char *dev_str =3D NULL; =20 if (!(mdevPath =3D virMediatedDeviceGetSysfsPath(mdevsrc->uuidstr))) - goto cleanup; + return NULL; =20 dev_str =3D virMediatedDeviceModelTypeToString(mdevsrc->model); =20 if (!dev_str) - goto cleanup; + return NULL; =20 virBufferAdd(&buf, dev_str, -1); virBufferAsprintf(&buf, ",id=3D%s,sysfsdev=3D%s", dev->info->alias, md= evPath); @@ -5535,15 +5434,12 @@ qemuBuildHostdevMediatedDevStr(const virDomainDef *= def, virTristateSwitchTypeToString(mdevsrc->display)); =20 if (qemuBuildDeviceAddressStr(&buf, def, dev->info, qemuCaps) < 0) - goto cleanup; + return NULL; =20 if (virBufferCheckError(&buf) < 0) - goto cleanup; - - ret =3D virBufferContentAndReset(&buf); + return NULL; =20 - cleanup: - return ret; + return virBufferContentAndReset(&buf); } =20 static int @@ -5798,13 +5694,13 @@ qemuBuildVirtioSerialPortDevStr(const virDomainDef = *def, if (dev->info.type !=3D VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_SERI= AL) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("virtio serial device has invalid addre= ss type")); - goto error; + return NULL; } =20 contAlias =3D virDomainControllerAliasFind(def, VIR_DOMAIN_CONTROL= LER_TYPE_VIRTIO_SERIAL, dev->info.addr.vioserial.= controller); if (!contAlias) - goto error; + return NULL; =20 virBufferAsprintf(&buf, ",bus=3D%s.%d,nr=3D%d", contAlias, dev->info.addr.vioserial.bus, @@ -5818,7 +5714,7 @@ qemuBuildVirtioSerialPortDevStr(const virDomainDef *d= ef, virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("Unsupported spicevmc target name '%s'"), dev->target.name); - goto error; + return NULL; } =20 virBufferAsprintf(&buf, ",chardev=3Dchar%s,id=3D%s", @@ -5830,12 +5726,9 @@ qemuBuildVirtioSerialPortDevStr(const virDomainDef *= def, ? dev->target.name : "com.redhat.spice.0"); } if (virBufferCheckError(&buf) < 0) - goto error; + return NULL; =20 return virBufferContentAndReset(&buf); - - error: - return NULL; } =20 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=3Dchar%s,id=3D%s", dev->info.alias, dev->info.alias); if (virBufferCheckError(&buf) < 0) - goto error; + return NULL; =20 return virBufferContentAndReset(&buf); - - error: - return NULL; } =20 =20 @@ -5913,10 +5803,9 @@ qemuBuildRNGBackendProps(virDomainRNGDefPtr rng, { VIR_AUTOFREE(char *) objAlias =3D NULL; VIR_AUTOFREE(char *) charBackendAlias =3D NULL; - int ret =3D -1; =20 if (virAsprintf(&objAlias, "obj%s", rng->info.alias) < 0) - goto cleanup; + return -1; =20 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; } =20 if (qemuMonitorCreateObjectProps(props, "rng-random", objAlias, "s:filename", rng->source.file, NULL) < 0) - goto cleanup; + return -1; =20 break; =20 @@ -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; } =20 if (!(charBackendAlias =3D qemuAliasChardevFromDevAlias(rng->info.= alias))) - goto cleanup; + return -1; =20 if (qemuMonitorCreateObjectProps(props, "rng-egd", objAlias, "s:chardev", charBackendAlias, NULL) < 0) - goto cleanup; + return -1; =20 break; =20 case VIR_DOMAIN_RNG_BACKEND_LAST: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("unknown rng-random backend")); - goto cleanup; + return -1; } =20 - ret =3D 0; - - cleanup: - return ret; + return 0; } =20 =20 @@ -5974,11 +5860,11 @@ qemuBuildRNGDevStr(const virDomainDef *def, =20 if (!qemuDomainCheckCCWS390AddressSupport(def, &dev->info, qemuCaps, dev->source.file)) - goto error; + return NULL; =20 if (qemuBuildVirtioDevStr(&buf, "virtio-rng", qemuCaps, VIR_DOMAIN_DEVICE_RNG, dev) < 0) { - goto error; + return NULL; } =20 virBufferAsprintf(&buf, ",rng=3Dobj%s,id=3D%s", @@ -5993,17 +5879,14 @@ qemuBuildRNGDevStr(const virDomainDef *def, } =20 if (qemuBuildVirtioOptionsStr(&buf, dev->virtio, qemuCaps) < 0) - goto error; + return NULL; =20 if (qemuBuildDeviceAddressStr(&buf, def, &dev->info, qemuCaps) < 0) - goto error; + return NULL; if (virBufferCheckError(&buf) < 0) - goto error; + return NULL; =20 return virBufferContentAndReset(&buf); - - error: - return NULL; } =20 =20 @@ -6194,12 +6077,9 @@ qemuBuildSmbiosBaseBoardStr(virSysinfoBaseBoardDefPt= r def) } =20 if (virBufferCheckError(&buf) < 0) - goto error; + return NULL; =20 return virBufferContentAndReset(&buf); - - error: - return NULL; } =20 =20 @@ -6258,12 +6138,9 @@ qemuBuildSmbiosChassisStr(virSysinfoChassisDefPtr de= f) } =20 if (virBufferCheckError(&buf) < 0) - goto error; + return NULL; =20 return virBufferContentAndReset(&buf); - - error: - return NULL; } =20 =20 @@ -6437,7 +6314,7 @@ qemuBuildClockArgStr(virDomainClockDefPtr def) * startup). */ if (virTimeLocalOffsetFromUTC(&localOffset) < 0) - goto error; + return NULL; def->data.variable.adjustment +=3D localOffset; def->data.variable.basis =3D 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; } =20 /* 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=3Dvm"); break; @@ -6504,19 +6381,16 @@ qemuBuildClockArgStr(virDomainClockDefPtr def) virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("unsupported rtc timer tickpolicy '%s'"), virDomainTimerTickpolicyTypeToString(def->t= imers[i]->tickpolicy)); - goto error; + return NULL; } break; /* no need to check other timers - there is only one rt= c */ } } =20 if (virBufferCheckError(&buf) < 0) - goto error; + return NULL; =20 return virBufferContentAndReset(&buf); - - error: - return NULL; } =20 =20 @@ -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; } =20 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; } =20 virBufferAsprintf(&boot_buf, "splash-time=3D%u,", def->os.bm_timeo= ut); @@ -6729,7 +6603,7 @@ qemuBuildBootCommandLine(virCommandPtr cmd, virBufferTrim(&boot_buf, ",", -1); =20 if (virBufferCheckError(&boot_buf) < 0) - goto error; + return -1; =20 boot_opts_str =3D virBufferContentAndReset(&boot_buf); if (boot_opts_str) { @@ -6755,9 +6629,6 @@ qemuBuildBootCommandLine(virCommandPtr cmd, } =20 return 0; - - error: - return -1; } =20 =20 @@ -6898,13 +6769,12 @@ qemuBuildCpuModelArgStr(virQEMUDriverPtr driver, virBufferPtr buf, virQEMUCapsPtr qemuCaps) { - int ret =3D -1; size_t i; VIR_AUTOUNREF(virCapsPtr) caps =3D NULL; virCPUDefPtr cpu =3D def->cpu; =20 if (!(caps =3D virQEMUDriverGetCapabilities(driver, false))) - goto cleanup; + return -1; =20 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=3Doff"); } @@ -6935,7 +6805,7 @@ qemuBuildCpuModelArgStr(virQEMUDriverPtr driver, virReportError(VIR_ERR_INTERNAL_ERROR, _("unexpected host-model CPU for %s architectur= e"), virArchToString(def->os.arch)); - goto cleanup; + return -1; } break; =20 @@ -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; } =20 if (cpu->vendor_id) @@ -6976,9 +6846,7 @@ qemuBuildCpuModelArgStr(virQEMUDriverPtr driver, } } =20 - ret =3D 0; - cleanup: - return ret; + return 0; } =20 static int @@ -6990,7 +6858,6 @@ qemuBuildCpuCommandLine(virCommandPtr cmd, virArch hostarch =3D virArchFromHost(); VIR_AUTOFREE(char *) cpu =3D NULL; VIR_AUTOFREE(char *) cpu_flags =3D NULL; - int ret =3D -1; VIR_AUTOCLEAN(virBuffer) cpu_buf =3D VIR_BUFFER_INITIALIZER; VIR_AUTOCLEAN(virBuffer) buf =3D VIR_BUFFER_INITIALIZER; size_t i; @@ -6998,7 +6865,7 @@ qemuBuildCpuCommandLine(virCommandPtr cmd, if (def->cpu && (def->cpu->mode !=3D 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, } =20 if (virBufferCheckError(&cpu_buf) < 0) - goto cleanup; + return -1; if (virBufferCheckError(&buf) < 0) - goto cleanup; + return -1; =20 cpu =3D virBufferContentAndReset(&cpu_buf); cpu_flags =3D 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; } =20 if (VIR_STRDUP(cpu, default_model) < 0) - goto cleanup; + return -1; } =20 if (cpu) { @@ -7198,10 +7065,7 @@ qemuBuildCpuCommandLine(virCommandPtr cmd, virCommandAddArgFormat(cmd, "%s%s", cpu, NULLSTR_EMPTY(cpu_flags)); } =20 - ret =3D 0; - - cleanup: - return ret; + return 0; } =20 =20 @@ -7304,7 +7168,6 @@ qemuBuildMachineCommandLine(virCommandPtr cmd, virCPUDefPtr cpu =3D def->cpu; VIR_AUTOCLEAN(virBuffer) buf =3D VIR_BUFFER_INITIALIZER; size_t i; - int ret =3D -1; =20 /* 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; } =20 virBufferAsprintf(&buf, ",vmport=3D%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; } =20 virBufferAddLit(&buf, ",mem-merge=3Doff"); @@ -7391,7 +7254,7 @@ qemuBuildMachineCommandLine(virCommandPtr cmd, =20 if (def->keywrap && !qemuAppendKeyWrapMachineParms(&buf, qemuCaps, def->keywrap)) - goto cleanup; + return -1; =20 if (def->features[VIR_DOMAIN_FEATURE_GIC] =3D=3D VIR_TRISTATE_SWITCH_O= N) { bool hasGICVersionOption =3D 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; } =20 virBufferAsprintf(&buf, ",gic-version=3D%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 bina= ry")); - goto cleanup; + return -1; } virBufferAddLit(&buf, ",nvdimm=3Don"); 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=3Dsplit"); 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; } =20 str =3D virDomainHPTResizingTypeToString(def->hpt_resizing); if (!str) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("Invalid setting for HPT resizing")); - goto cleanup; + return -1; } =20 virBufferAsprintf(&buf, ",resize-hpt=3D%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; } =20 virBufferAsprintf(&buf, ",cap-hpt-max-page-size=3D%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; } =20 str =3D virTristateSwitchTypeToString(def->features[VIR_DOMAIN_FEA= TURE_HTM]); if (!str) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("Invalid setting for HTM state")); - goto cleanup; + return -1; } =20 virBufferAsprintf(&buf, ",cap-htm=3D%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; } =20 str =3D virTristateSwitchTypeToString(def->features[VIR_DOMAIN_FEA= TURE_NESTED_HV]); if (!str) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("Invalid setting for nested HV state")); - goto cleanup; + return -1; } =20 virBufferAsprintf(&buf, ",cap-nested-hv=3D%s", str); @@ -7580,9 +7443,7 @@ qemuBuildMachineCommandLine(virCommandPtr cmd, =20 virCommandAddArgBuffer(cmd, &buf); =20 - ret =3D 0; - cleanup: - return ret; + return 0; } =20 =20 @@ -7956,7 +7817,6 @@ qemuBuildGraphicsSDLCommandLine(virQEMUDriverConfigPt= r cfg ATTRIBUTE_UNUSED, virQEMUCapsPtr qemuCaps ATTRIBUTE_UNUSED, virDomainGraphicsDefPtr graphics) { - int ret =3D -1; VIR_AUTOCLEAN(virBuffer) opt =3D VIR_BUFFER_INITIALIZER; =20 if (graphics->data.sdl.xauth) @@ -7981,7 +7841,7 @@ qemuBuildGraphicsSDLCommandLine(virQEMUDriverConfigPt= r cfg ATTRIBUTE_UNUSED, virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("OpenGL for SDL is not supported with this QE= MU " "binary")); - goto cleanup; + return -1; } =20 virBufferAsprintf(&opt, ",gl=3D%s", @@ -7990,13 +7850,11 @@ qemuBuildGraphicsSDLCommandLine(virQEMUDriverConfig= Ptr cfg ATTRIBUTE_UNUSED, } =20 if (virBufferCheckError(&opt) < 0) - goto cleanup; + return -1; =20 virCommandAddArgBuffer(cmd, &opt); =20 - ret =3D 0; - cleanup: - return ret; + return 0; } =20 =20 @@ -8013,13 +7871,13 @@ qemuBuildGraphicsVNCCommandLine(virQEMUDriverConfig= Ptr 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; } =20 if (!(glisten =3D virDomainGraphicsGetListen(graphics, 0))) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("missing listen element")); - goto error; + return -1; } =20 switch (glisten->type) { @@ -8038,7 +7896,7 @@ qemuBuildGraphicsVNCCommandLine(virQEMUDriverConfigPt= r cfg, graphics->data.vnc.port > 65535)) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("vnc port must be in range [5900,65535]")); - goto error; + return -1; } =20 if (glisten->address) { @@ -8080,7 +7938,7 @@ qemuBuildGraphicsVNCCommandLine(virQEMUDriverConfigPt= r cfg, if (gfxPriv->secinfo) { if (qemuBuildObjectSecretCommandLine(cmd, gfxPriv->secinfo) < 0) - goto error; + return -1; secretAlias =3D gfxPriv->secinfo->s.aes.alias; } =20 @@ -8091,7 +7949,7 @@ qemuBuildGraphicsVNCCommandLine(virQEMUDriverConfigPt= r cfg, secretAlias, gfxPriv->tlsAlias, qemuCaps) < 0) - goto error; + return -1; =20 virBufferAsprintf(&opt, ",tls-creds=3D%s", gfxPriv->tlsAlias); } else { @@ -8130,9 +7988,6 @@ qemuBuildGraphicsVNCCommandLine(virQEMUDriverConfigPt= r cfg, virCommandAddEnvString(cmd, "QEMU_AUDIO_DRV=3Dnone"); =20 return 0; - - error: - return -1; } =20 =20 @@ -8153,13 +8008,13 @@ qemuBuildGraphicsSPICECommandLine(virQEMUDriverConf= igPtr 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; } =20 if (!(glisten =3D virDomainGraphicsGetListen(graphics, 0))) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("missing listen element")); - goto error; + return -1; } =20 switch (glisten->type) { @@ -8168,7 +8023,7 @@ qemuBuildGraphicsSPICECommandLine(virQEMUDriverConfig= Ptr cfg, virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("unix socket for spice graphics are not suppo= rted " "with this QEMU")); - goto error; + return -1; } =20 virBufferAddLit(&opt, "unix,addr=3D"); @@ -8189,7 +8044,7 @@ qemuBuildGraphicsSPICECommandLine(virQEMUDriverConfig= Ptr 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=3D%u,", tlsPort); hasSecure =3D true; @@ -8236,7 +8091,7 @@ qemuBuildGraphicsSPICECommandLine(virQEMUDriverConfig= Ptr cfg, default: virReportEnumRangeError(virDomainGraphicsSpiceMouseMode, graphics->data.spice.mousemode); - goto error; + return -1; } } =20 @@ -8260,7 +8115,7 @@ qemuBuildGraphicsSPICECommandLine(virQEMUDriverConfig= Ptr cfg, _("spice defaultMode secure requested in XML " "configuration, but TLS connection is not " "available")); - goto error; + return -1; } virBufferAddLit(&opt, "tls-channel=3Ddefault,"); break; @@ -8270,7 +8125,7 @@ qemuBuildGraphicsSPICECommandLine(virQEMUDriverConfig= Ptr cfg, _("spice defaultMode insecure requested in XML " "configuration, but plaintext connection is n= ot " "available")); - goto error; + return -1; } virBufferAddLit(&opt, "plaintext-channel=3Ddefault,"); break; @@ -8288,7 +8143,7 @@ qemuBuildGraphicsSPICECommandLine(virQEMUDriverConfig= Ptr cfg, _("spice secure channels set in XML " "configuration, but TLS connection is not= " "available")); - goto error; + return -1; } virBufferAsprintf(&opt, "tls-channel=3D%s,", virDomainGraphicsSpiceChannelNameTypeToStrin= g(i)); @@ -8300,7 +8155,7 @@ qemuBuildGraphicsSPICECommandLine(virQEMUDriverConfig= Ptr cfg, _("spice insecure channels set in XML " "configuration, but plaintext connection " "is not available")); - goto error; + return -1; } virBufferAsprintf(&opt, "plaintext-channel=3D%s,", virDomainGraphicsSpiceChannelNameTypeToStrin= g(i)); @@ -8333,7 +8188,7 @@ qemuBuildGraphicsSPICECommandLine(virQEMUDriverConfig= Ptr cfg, if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_SPICE_FILE_XFER_DISABLE)) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("This QEMU can't disable file transfers throug= h spice")); - goto error; + return -1; } else { virBufferAddLit(&opt, "disable-agent-file-xfer,"); } @@ -8343,7 +8198,7 @@ qemuBuildGraphicsSPICECommandLine(virQEMUDriverConfig= Ptr 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; } =20 /* spice.gl is a TristateBool, but qemu expects on/off: use @@ -8355,7 +8210,7 @@ qemuBuildGraphicsSPICECommandLine(virQEMUDriverConfig= Ptr cfg, if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_SPICE_RENDERNODE)) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("This QEMU doesn't support spice OpenGL r= endernode")); - goto error; + return -1; } =20 virBufferAddLit(&opt, "rendernode=3D"); @@ -8381,9 +8236,6 @@ qemuBuildGraphicsSPICECommandLine(virQEMUDriverConfig= Ptr cfg, virCommandAddEnvString(cmd, "QEMU_AUDIO_DRV=3Dspice"); =20 return 0; - - error: - return -1; } =20 =20 @@ -8393,7 +8245,6 @@ qemuBuildGraphicsEGLHeadlessCommandLine(virQEMUDriver= ConfigPtr cfg ATTRIBUTE_UNU virQEMUCapsPtr qemuCaps, virDomainGraphicsDefPtr graphics) { - int ret =3D -1; VIR_AUTOCLEAN(virBuffer) opt =3D VIR_BUFFER_INITIALIZER; =20 virBufferAddLit(&opt, "egl-headless"); @@ -8403,7 +8254,7 @@ qemuBuildGraphicsEGLHeadlessCommandLine(virQEMUDriver= ConfigPtr 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; } =20 virBufferAddLit(&opt, ",rendernode=3D"); @@ -8412,14 +8263,12 @@ qemuBuildGraphicsEGLHeadlessCommandLine(virQEMUDriv= erConfigPtr cfg ATTRIBUTE_UNU } =20 if (virBufferCheckError(&opt) < 0) - goto cleanup; + return -1; =20 virCommandAddArg(cmd, "-display"); virCommandAddArgBuffer(cmd, &opt); =20 - ret =3D 0; - cleanup: - return ret; + return 0; } =20 =20 @@ -8486,7 +8335,6 @@ qemuInterfaceVhostuserConnect(virQEMUDriverPtr driver, char **chardev) { VIR_AUTOUNREF(virQEMUDriverConfigPtr) cfg =3D virQEMUDriverGetConfig(d= river); - int ret =3D -1; =20 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; =20 case VIR_DOMAIN_CHR_TYPE_NULL: @@ -8513,12 +8361,10 @@ qemuInterfaceVhostuserConnect(virQEMUDriverPtr driv= er, virReportError(VIR_ERR_INTERNAL_ERROR, _("vhost-user type '%s' not supported"), virDomainChrTypeToString(net->data.vhostuser->type)= ); - goto cleanup; + return -1; } =20 - ret =3D 0; - cleanup: - return ret; + return 0; } =20 static int @@ -9104,15 +8950,12 @@ qemuBuildShmemDevLegacyStr(virDomainDefPtr def, } =20 if (qemuBuildDeviceAddressStr(&buf, def, &shmem->info, qemuCaps) < 0) - goto error; + return NULL; =20 if (virBufferCheckError(&buf) < 0) - goto error; + return NULL; =20 return virBufferContentAndReset(&buf); - - error: - return NULL; } =20 char * @@ -9169,7 +9012,7 @@ qemuBuildShmemBackendMemProps(virDomainShmemDefPtr sh= mem) return NULL; =20 if (virAsprintf(&mem_alias, "shmmem-%s", shmem->info.alias) < 0) - goto cleanup; + return NULL; =20 qemuMonitorCreateObjectProps(&ret, "memory-backend-file", mem_alias, "s:mem-path", mem_path, @@ -9177,7 +9020,6 @@ qemuBuildShmemBackendMemProps(virDomainShmemDefPtr sh= mem) "b:share", true, NULL); =20 - cleanup: return ret; } =20 @@ -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; } =20 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; } =20 virBufferAsprintf(&buf, "usb-redir,chardev=3Dchar%s,id=3D%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; } =20 virBufferAddLit(&buf, ",filter=3D"); @@ -9680,15 +9522,12 @@ qemuBuildRedirdevDevStr(const virDomainDef *def, virBufferAsprintf(&buf, ",bootindex=3D%u", dev->info.bootIndex); =20 if (qemuBuildDeviceAddressStr(&buf, def, &dev->info, qemuCaps) < 0) - goto error; + return NULL; =20 if (virBufferCheckError(&buf) < 0) - goto error; + return NULL; =20 return virBufferContentAndReset(&buf); - - error: - return NULL; } =20 =20 @@ -9811,7 +9650,7 @@ qemuBuildTPMDevStr(const virDomainDef *def, case VIR_DOMAIN_TPM_MODEL_LAST: default: virReportEnumRangeError(virDomainTPMModel, tpm->model); - goto error; + return NULL; } =20 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; } =20 virBufferAsprintf(&buf, "%s,tpmdev=3Dtpm-%s,id=3D%s", model, tpm->info.alias, tpm->info.alias); =20 if (virBufferCheckError(&buf) < 0) - goto error; + return NULL; =20 return virBufferContentAndReset(&buf); - - error: - return NULL; } =20 =20 @@ -9884,17 +9720,17 @@ qemuBuildTPMBackendStr(const virDomainDef *def, case VIR_DOMAIN_TPM_TYPE_PASSTHROUGH: tpmdev =3D tpm->data.passthrough.source.data.file.path; if (!(cancel_path =3D virTPMCreateCancelPath(tpmdev))) - goto error; + return NULL; =20 if (qemuBuildTPMOpenBackendFDs(tpmdev, cancel_path, tpmfd, cancelf= d) < 0) - goto error; + return NULL; =20 virCommandPassFD(cmd, *tpmfd, VIR_COMMAND_PASS_FD_CLOSE_PARENT); virCommandPassFD(cmd, *cancelfd, VIR_COMMAND_PASS_FD_CLOSE_PARENT); =20 if (!(devset =3D qemuVirCommandGetDevSet(cmd, *tpmfd)) || !(cancelset =3D qemuVirCommandGetDevSet(cmd, *cancelfd))) - goto error; + return NULL; =20 virBufferAddLit(&buf, ",path=3D"); virQEMUBuildBufferEscapeComma(&buf, devset); @@ -9908,20 +9744,17 @@ qemuBuildTPMBackendStr(const virDomainDef *def, =20 if (virAsprintf(chardev, "socket,id=3Dchrtpm,path=3D%s", tpm->data.emulator.source.data.nix.path) < 0) - goto error; + return NULL; =20 break; case VIR_DOMAIN_TPM_TYPE_LAST: - goto error; + return NULL; } =20 if (virBufferCheckError(&buf) < 0) - goto error; + return NULL; =20 return virBufferContentAndReset(&buf); - - error: - return NULL; } =20 =20 @@ -9984,7 +9817,6 @@ qemuBuildSEVCommandLine(virDomainObjPtr vm, virComman= dPtr cmd, VIR_AUTOCLEAN(virBuffer) buf =3D VIR_BUFFER_INITIALIZER; qemuDomainObjPrivatePtr priv =3D vm->privateData; char *path =3D NULL; - int ret =3D -1; =20 if (!sev) return 0; @@ -9998,23 +9830,21 @@ qemuBuildSEVCommandLine(virDomainObjPtr vm, virComm= andPtr cmd, =20 if (sev->dh_cert) { if (virAsprintf(&path, "%s/dh_cert.base64", priv->libDir) < 0) - goto cleanup; + return -1; virBufferAsprintf(&buf, ",dh-cert-file=3D%s", path); VIR_FREE(path); } =20 if (sev->session) { if (virAsprintf(&path, "%s/session.base64", priv->libDir) < 0) - goto cleanup; + return -1; virBufferAsprintf(&buf, ",session-file=3D%s", path); VIR_FREE(path); } =20 virCommandAddArg(cmd, "-object"); virCommandAddArgBuffer(cmd, &buf); - ret =3D 0; - cleanup: - return ret; + return 0; } =20 static int @@ -10167,15 +9997,12 @@ virJSONValuePtr qemuBuildPRManagedManagerInfoProps(qemuDomainObjPrivatePtr priv) { VIR_AUTOFREE(char *) path =3D NULL; - virJSONValuePtr ret =3D NULL; =20 if (!(path =3D qemuDomainGetManagedPRSocketPath(priv))) return NULL; =20 - ret =3D qemuBuildPRManagerInfoPropsInternal(qemuDomainGetManagedPRAlia= s(), - path); - - return ret; + return qemuBuildPRManagerInfoPropsInternal(qemuDomainGetManagedPRAlias= (), + path); } =20 =20 @@ -10199,7 +10026,6 @@ qemuBuildManagedPRCommandLine(virCommandPtr cmd, { VIR_AUTOCLEAN(virBuffer) buf =3D VIR_BUFFER_INITIALIZER; VIR_AUTOPTR(virJSONValue) props =3D NULL; - int ret =3D -1; =20 if (!virDomainDefHasManagedPR(def)) return 0; @@ -10208,14 +10034,12 @@ qemuBuildManagedPRCommandLine(virCommandPtr cmd, return -1; =20 if (virQEMUBuildObjectCommandlineFromJSON(&buf, props) < 0) - goto cleanup; + return -1; =20 virCommandAddArg(cmd, "-object"); virCommandAddArgBuffer(cmd, &buf); =20 - ret =3D 0; - cleanup: - return ret; + return 0; } =20 =20 @@ -10345,27 +10169,22 @@ qemuBuildVsockDevStr(virDomainDefPtr def, { qemuDomainVsockPrivatePtr priv =3D (qemuDomainVsockPrivatePtr)vsock->p= rivateData; VIR_AUTOCLEAN(virBuffer) buf =3D VIR_BUFFER_INITIALIZER; - char *ret =3D NULL; - =20 if (qemuBuildVirtioDevStr(&buf, "vhost-vsock", qemuCaps, VIR_DOMAIN_DEVICE_VSOCK, vsock) < 0) { - goto cleanup; + return NULL; } =20 virBufferAsprintf(&buf, ",id=3D%s", vsock->info.alias); virBufferAsprintf(&buf, ",guest-cid=3D%u", vsock->guest_cid); virBufferAsprintf(&buf, ",vhostfd=3D%s%u", fdprefix, priv->vhostfd); if (qemuBuildDeviceAddressStr(&buf, def, &vsock->info, qemuCaps) < 0) - goto cleanup; + return NULL; =20 if (virBufferCheckError(&buf) < 0) - goto cleanup; - - ret =3D virBufferContentAndReset(&buf); + return NULL; =20 - cleanup: - return ret; + return virBufferContentAndReset(&buf); } =20 =20 @@ -10377,22 +10196,19 @@ qemuBuildVsockCommandLine(virCommandPtr cmd, { qemuDomainVsockPrivatePtr priv =3D (qemuDomainVsockPrivatePtr)vsock->p= rivateData; VIR_AUTOFREE(char *) devstr =3D NULL; - int ret =3D -1; =20 if (!(devstr =3D qemuBuildVsockDevStr(def, vsock, qemuCaps, ""))) - goto cleanup; + return -1; =20 virCommandPassFD(cmd, priv->vhostfd, VIR_COMMAND_PASS_FD_CLOSE_PARENT); priv->vhostfd =3D -1; =20 if (qemuCommandAddExtDevice(cmd, &vsock->info) < 0) - goto cleanup; + return -1; =20 virCommandAddArgList(cmd, "-device", devstr, NULL); =20 - ret =3D 0; - cleanup: - return ret; + return 0; } =20 =20 @@ -10707,7 +10523,7 @@ qemuBuildSerialChrDeviceStr(char **deviceStr, virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("'%s' is not supported in this QEMU binary"), virDomainChrSerialTargetModelTypeToString(seria= l->targetModel)); - goto error; + return -1; } break; =20 @@ -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; } =20 virBufferAsprintf(&buf, "%s,chardev=3Dchar%s,id=3D%s", @@ -10729,16 +10545,13 @@ qemuBuildSerialChrDeviceStr(char **deviceStr, serial->info.alias, serial->info.alias); =20 if (qemuBuildDeviceAddressStr(&buf, def, &serial->info, qemuCaps) < 0) - goto error; + return -1; =20 if (virBufferCheckError(&buf) < 0) - goto error; + return -1; =20 *deviceStr =3D virBufferContentAndReset(&buf); return 0; - - error: - return -1; } =20 static int @@ -10771,12 +10584,12 @@ qemuBuildChannelChrDeviceStr(char **deviceStr, if (virAsprintf(deviceStr, "user,guestfwd=3Dtcp:%s:%i-chardev:char%s,id=3D%s", addr, port, chr->info.alias, chr->info.alias) < 0) - goto cleanup; + return -1; break; =20 case VIR_DOMAIN_CHR_CHANNEL_TARGET_TYPE_VIRTIO: if (!(*deviceStr =3D qemuBuildVirtioSerialPortDevStr(def, chr))) - goto cleanup; + return -1; break; =20 case VIR_DOMAIN_CHR_CHANNEL_TARGET_TYPE_XEN: @@ -10785,9 +10598,7 @@ qemuBuildChannelChrDeviceStr(char **deviceStr, return ret; } =20 - ret =3D 0; - cleanup: - return ret; + return 0; } =20 static int @@ -10795,18 +10606,16 @@ qemuBuildConsoleChrDeviceStr(char **deviceStr, const virDomainDef *def, virDomainChrDefPtr chr) { - int ret =3D -1; - switch ((virDomainChrConsoleTargetType)chr->targetType) { case VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_SCLP: case VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_SCLPLM: if (!(*deviceStr =3D qemuBuildSclpDevStr(chr))) - goto cleanup; + return -1; break; =20 case VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_VIRTIO: if (!(*deviceStr =3D qemuBuildVirtioSerialPortDevStr(def, chr))) - goto cleanup; + return -1; break; =20 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; } =20 - ret =3D 0; - cleanup: - return ret; + return 0; } =20 int --=20 2.19.2 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list