From nobody Sun May 5 10:02:01 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) client-ip=216.205.24.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1613651665; cv=none; d=zohomail.com; s=zohoarc; b=JQwC4SZ0yHG4hvYKSnnbQx5r5E1khkVP1bShwnZtOWQ+yPu0izQeSkQEyqg90H1VvmO18So3L1fwjt9TB1LXZrNp97IKo/M9zR/sEwFzY/uX+U1HpyRBO86z5hKlDHNZ42/qKzDhJkNGS5XQSxAxri7WdEKG5XZGVtfVM6ux48s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1613651665; h=Content-Type:Content-Transfer-Encoding:Date:From:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:To; bh=ElIPNWDs/NMUayoNXQE9CchOKa1WZaNkEm+bwMnx3PE=; b=coygohBnf6stFp3rZofRSIWplGySVt7sSEK9DrMw574cb2XTJn9mFKXMtUIhpL4uaBge+oJiHIvje45q0/oZl4dBlGBTS7Woy2sbni8762LsL9WTIbDvoLoYdwdJqQmV/edGetos7cqfkQASaXgW1x63TVKayWA+c5PXsW51bjc= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by mx.zohomail.com with SMTPS id 1613651665415261.3275609485876; Thu, 18 Feb 2021 04:34:25 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-87-JUHZ_PQaNzOKN0uYi0C_KQ-1; Thu, 18 Feb 2021 07:34:21 -0500 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 mimecast-mx01.redhat.com (Postfix) with ESMTPS id 40A79106BC6C; Thu, 18 Feb 2021 12:34:15 +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 CEF7B6F43C; Thu, 18 Feb 2021 12:34:13 +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 C3A2718095CB; Thu, 18 Feb 2021 12:34:11 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 11ICYAPU013709 for ; Thu, 18 Feb 2021 07:34:10 -0500 Received: by smtp.corp.redhat.com (Postfix) id 7325120CA48C; Thu, 18 Feb 2021 12:34:10 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast06.extmail.prod.ext.rdu2.redhat.com [10.11.55.22]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 6E36A20CA48A for ; Thu, 18 Feb 2021 12:34:06 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-1.mimecast.com [205.139.110.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id BA50C186E122 for ; Thu, 18 Feb 2021 12:34:06 +0000 (UTC) Received: from mail-qk1-f179.google.com (mail-qk1-f179.google.com [209.85.222.179]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-296-infJ72IcNY2MgyG6roZSdw-1; Thu, 18 Feb 2021 07:34:04 -0500 Received: by mail-qk1-f179.google.com with SMTP id t62so1830766qke.7 for ; Thu, 18 Feb 2021 04:34:04 -0800 (PST) Received: from rekt.ibmuc.com ([2804:431:c7c6:a50d:bdb3:4a9d:cdde:b53f]) by smtp.gmail.com with ESMTPSA id q8sm3825799qkm.38.2021.02.18.04.34.02 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 18 Feb 2021 04:34:03 -0800 (PST) X-MC-Unique: JUHZ_PQaNzOKN0uYi0C_KQ-1 X-MC-Unique: infJ72IcNY2MgyG6roZSdw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=ElIPNWDs/NMUayoNXQE9CchOKa1WZaNkEm+bwMnx3PE=; b=V+N1/6oAriuNDXumpL2YmmbugS1i7sQ2cPK2T9Qepjh9fPaVHyDWm1mYzecOuE1nVO kVVEKpKLrtzunz0oKVXK5gUE36r4sgU39eM1a2DZlmylWPmpUuCdeKuP45hSVQv9YBlT Trg7g4GokTmeWkAJzYFnpqe+H8QHB532mZArY4oGscARxCJmuwVEXfucyu76SI5qDmz2 IHBHZk00QcF+6VVPMhAxR19Y2jv8q4IUidiY0t4X6JZDhn07z7gu6dLeiBpPiYKXGw6P 4Dg3r7G302OrkZNUBp1OxT/9JZjssPK490N468875zfzBb+AkrdlefmoV5doIxVWypDl qB/Q== X-Gm-Message-State: AOAM530NBDb5glpDvh9f7jl2SQ1WtmLeXnf3JGiMENBtG62n9r2SC7/D gNm7EPwrwPUnEAy6hlbJVHtZBwdn760= X-Google-Smtp-Source: ABdhPJwvILOStju3UG9AwYYGZ54IKiSOL+D28oLELb0O57Z0zLncSLp8WlIoTibboIkDuKDxF8BBZg== X-Received: by 2002:a37:389:: with SMTP id 131mr3979569qkd.177.1613651644065; Thu, 18 Feb 2021 04:34:04 -0800 (PST) From: Daniel Henrique Barboza To: libvir-list@redhat.com Subject: [PATCH] qemu_driver.c: Coverity fix in qemuNodeDeviceDetachFlags() Date: Thu, 18 Feb 2021 09:33:53 -0300 Message-Id: <20210218123353.321198-1-danielhb413@gmail.com> MIME-Version: 1.0 X-Mimecast-Impersonation-Protect: Policy=CLT - Impersonation Protection Definition; Similar Internal Domain=false; Similar Monitored External Domain=false; Custom External Domain=false; Mimecast External Domain=false; Newly Observed Domain=false; Internal User Name=false; Custom Display Name List=false; Reply-to Address Mismatch=false; Targeted Threat Dictionary=false; Mimecast Threat Dictionary=false; Custom Threat Dictionary=false X-Scanned-By: MIMEDefang 2.78 on 10.11.54.6 X-loop: libvir-list@redhat.com 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: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Commit 76f47889326c4 made qemuNodeDeviceDetachFlags() unusable due to an 'if then else if' chain that will always results in a 'return -1', regardless of 'driverName' input. This slipped through review process and Gitlab CI, making it clear now that there is no unit tests exercising this code ATM. LUckily John Ferlan caught this up with his Coverity scan and spared us from an unneeded headache later on. Fixes: 76f47889326c45d2732711bc6dd5751aaf6e5194 Reported-by: John Ferlan Signed-off-by: Daniel Henrique Barboza Reviewed-by: John Ferlan Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_driver.c | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index f1035a536e..b9bbdf8d48 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -11998,7 +11998,6 @@ qemuNodeDeviceDetachFlags(virNodeDevicePtr dev, unsigned int flags) { virQEMUDriverPtr driver =3D dev->conn->privateData; - bool vfio =3D qemuHostdevHostSupportsPassthroughVFIO(); virHostdevManagerPtr hostdev_mgr =3D driver->hostdevMgr; =20 virCheckFlags(0, -1); @@ -12006,22 +12005,27 @@ qemuNodeDeviceDetachFlags(virNodeDevicePtr dev, if (!driverName) driverName =3D "vfio"; =20 - if (STREQ(driverName, "vfio") && !vfio) { - virReportError(VIR_ERR_ARGUMENT_UNSUPPORTED, "%s", - _("VFIO device assignment is currently not " - "supported on this system")); - return -1; - } else if (STREQ(driverName, "kvm")) { + /* Only the 'vfio' driver is supported and a special error message for + * the previously supported 'kvm' driver is provided below. */ + if (STRNEQ(driverName, "vfio") && STRNEQ(driverName, "kvm")) { + virReportError(VIR_ERR_INVALID_ARG, + _("unknown driver name '%s'"), driverName); + return -1; + } + + if (STREQ(driverName, "kvm")) { virReportError(VIR_ERR_ARGUMENT_UNSUPPORTED, "%s", _("KVM device assignment is no longer " "supported on this system")); return -1; - } else { - virReportError(VIR_ERR_INVALID_ARG, - _("unknown driver name '%s'"), driverName); - return -1; } =20 + if (!qemuHostdevHostSupportsPassthroughVFIO()) { + virReportError(VIR_ERR_ARGUMENT_UNSUPPORTED, "%s", + _("VFIO device assignment is currently not " + "supported on this system")); + return -1; + } =20 /* virNodeDeviceDetachFlagsEnsureACL() is being called by * virDomainDriverNodeDeviceDetachFlags() */ --=20 2.29.2