From nobody Thu May 15 06:11:54 2025 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 Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1509710653105997.7836495870049; Fri, 3 Nov 2017 05:04:13 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 67FD97CBAD; Fri, 3 Nov 2017 12:04:11 +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 409B760633; Fri, 3 Nov 2017 12:04:11 +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 09FE9180474E; Fri, 3 Nov 2017 12:04:11 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id vA3C49VY005355 for ; Fri, 3 Nov 2017 08:04:09 -0400 Received: by smtp.corp.redhat.com (Postfix) id 0655A5C6D4; Fri, 3 Nov 2017 12:04:09 +0000 (UTC) Received: from angien.brq.redhat.com (unknown [10.43.2.136]) by smtp.corp.redhat.com (Postfix) with ESMTP id F219E60618; Fri, 3 Nov 2017 12:04:05 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 67FD97CBAD Authentication-Results: ext-mx02.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx02.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=libvir-list-bounces@redhat.com From: Peter Krempa To: libvir-list@redhat.com Date: Fri, 3 Nov 2017 13:03:31 +0100 Message-Id: <7ba0c723cb11ec4ed8d00494ccdc8deaa15f492d.1509710570.git.pkrempa@redhat.com> In-Reply-To: References: In-Reply-To: References: X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com Cc: Peter Krempa Subject: [libvirt] [PATCH 3/9] qemu: command: Move disk index validation closer to usage 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: , MIME-Version: 1.0 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.13 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Fri, 03 Nov 2017 12:04:12 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" The disk index validation is used only in very specific cases and does not need to be performed otherwise. Move it out of the global check into the usage place. --- src/qemu/qemu_command.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index a77a0a1fa..e663bc357 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -1468,15 +1468,8 @@ qemuBuildDriveSourceStr(virDomainDiskDefPtr disk, static int qemuBuildDriveStrValidate(virDomainDiskDefPtr disk, virQEMUCapsPtr qemuCaps, - const char *bus, - int idx) + const char *bus) { - if (idx < 0) { - virReportError(VIR_ERR_INTERNAL_ERROR, - _("unsupported disk type '%s'"), disk->dst); - return -1; - } - switch (disk->bus) { case VIR_DOMAIN_DISK_BUS_SCSI: if (disk->info.type !=3D VIR_DOMAIN_DEVICE_ADDRESS_TYPE_DRIVE) { @@ -1638,10 +1631,9 @@ qemuBuildDriveStr(virDomainDiskDefPtr disk, const char *bus =3D virDomainDiskQEMUBusTypeToString(disk->bus); const char *trans =3D virDomainDiskGeometryTransTypeToString(disk->geometry.trans); - int idx =3D virDiskNameToIndex(disk->dst); bool emitDeviceSyntax =3D qemuDiskBusNeedsDeviceArg(disk->bus); - if (qemuBuildDriveStrValidate(disk, qemuCaps, bus, idx) < 0) + if (qemuBuildDriveStrValidate(disk, qemuCaps, bus) < 0) goto error; if (qemuBuildDriveSourceStr(disk, cfg, &opt, qemuCaps) < 0) @@ -1671,6 +1663,13 @@ qemuBuildDriveStr(virDomainDiskDefPtr disk, virBufferAsprintf(&opt, ",id=3D%s", drivealias); VIR_FREE(drivealias); } else { + int idx =3D virDiskNameToIndex(disk->dst); + + if (idx < 0) { + virReportError(VIR_ERR_INTERNAL_ERROR, + _("unsupported disk type '%s'"), disk->dst); + goto error; + } virBufferAsprintf(&opt, ",index=3D%d", idx); } if (bootable && --=20 2.14.3 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list