On Tue, May 03, 2011 at 09:34:11AM -0600, Eric Blake wrote: > Clang detected a null-pointer dereference regression, introduced > in commit 4e8969eb. Without this patch, a device with > unbind_from_stub set to false would eventually try to call > virFileExists on uncomputed drvdir. > > * src/util/pci.c (pciUnbindDeviceFromStub): Ensure drvdir is set > before use. > --- > src/util/pci.c | 7 ++++--- > 1 files changed, 4 insertions(+), 3 deletions(-) > > diff --git a/src/util/pci.c b/src/util/pci.c > index 945f32a..d7f74f9 100644 > --- a/src/util/pci.c > +++ b/src/util/pci.c > @@ -879,15 +879,16 @@ pciUnbindDeviceFromStub(pciDevice *dev, const char *driver) > char *drvdir = NULL; > char *path = NULL; > > + if (pciDriverDir(&drvdir, driver) < 0) > + goto cleanup; > + > if (!dev->unbind_from_stub) > goto remove_slot; > > /* If the device is bound to stub, unbind it. > */ > - if (pciDriverDir(&drvdir, driver) < 0 || > - pciDeviceFile(&path, dev->name, "driver") < 0) { > + if (pciDeviceFile(&path, dev->name, "driver") < 0) > goto cleanup; > - } > > if (virFileExists(drvdir) && virFileLinkPointsTo(path, drvdir)) { > if (pciDriverFile(&path, driver, "unbind") < 0) { ACK Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list