]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
libxl_driver.c: validate 'driverName' earlier in libxlNodeDeviceDetachFlags()
authorDaniel Henrique Barboza <danielhb413@gmail.com>
Sat, 30 Jan 2021 16:59:06 +0000 (13:59 -0300)
committerDaniel Henrique Barboza <danielhb413@gmail.com>
Wed, 17 Feb 2021 18:53:00 +0000 (15:53 -0300)
The validation of 'driverName' does not depend on any other state and can be
done right on the start of the function. We can fail earlier while avoiding
a cleanup jump.

Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
src/libxl/libxl_driver.c

index 172fe284364c14e398a86f3d733b3d29fa67e5db..b44715eee1910f0bf11383c2b417be34e448ff8f 100644 (file)
@@ -5784,6 +5784,12 @@ libxlNodeDeviceDetachFlags(virNodeDevicePtr dev,
 
     virCheckFlags(0, -1);
 
+    if (driverName && STRNEQ(driverName, "xen")) {
+        virReportError(VIR_ERR_INVALID_ARG,
+                       _("unsupported driver name '%s'"), driverName);
+        return -1;
+    }
+
     if (!(nodeconn = virGetConnectNodeDev()))
         goto cleanup;
 
@@ -5815,13 +5821,7 @@ libxlNodeDeviceDetachFlags(virNodeDevicePtr dev,
     if (!pci)
         goto cleanup;
 
-    if (!driverName || STREQ(driverName, "xen")) {
-        virPCIDeviceSetStubDriver(pci, VIR_PCI_STUB_DRIVER_XEN);
-    } else {
-        virReportError(VIR_ERR_INVALID_ARG,
-                       _("unsupported driver name '%s'"), driverName);
-        goto cleanup;
-    }
+    virPCIDeviceSetStubDriver(pci, VIR_PCI_STUB_DRIVER_XEN);
 
     if (virHostdevPCINodeDeviceDetach(hostdev_mgr, pci) < 0)
         goto cleanup;