diff --git a/src/util/virpci.c b/src/util/virpci.c index c3d211f64b..00d106441b 100644 --- a/src/util/virpci.c +++ b/src/util/virpci.c @@ -1327,6 +1327,8 @@ virPCIDeviceDetach(virPCIDevicePtr dev, virPCIDeviceList *activeDevs, virPCIDeviceList *inactiveDevs) { + sa_assert(dev->stubDriver); + if (virPCIProbeStubDriver(dev->stubDriver) < 0) return -1; @@ -1657,7 +1659,7 @@ int virPCIDeviceSetStubDriver(virPCIDevicePtr dev, const char *driver) { VIR_FREE(dev->stubDriver); - return driver ? VIR_STRDUP(dev->stubDriver, driver) : 0; + return VIR_STRDUP(dev->stubDriver, driver); } const char * diff --git a/src/util/virpci.h b/src/util/virpci.h index 42c3c957e2..ac6dae18e0 100644 --- a/src/util/virpci.h +++ b/src/util/virpci.h @@ -63,7 +63,8 @@ void virPCIDeviceSetManaged(virPCIDevice *dev, bool managed); unsigned int virPCIDeviceGetManaged(virPCIDevice *dev); int virPCIDeviceSetStubDriver(virPCIDevicePtr dev, - const char *driver); + const char *driver) + ATTRIBUTE_NONNULL(2); const char *virPCIDeviceGetStubDriver(virPCIDevicePtr dev); void virPCIDeviceSetUsedBy(virPCIDevice *dev, const char *used_by);