[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
[libvirt] [PATCH] pci: fix null pointer dereference
- From: Eric Blake <eblake redhat com>
- To: libvir-list redhat com
- Subject: [libvirt] [PATCH] pci: fix null pointer dereference
- Date: Tue, 3 May 2011 09:34:11 -0600
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) {
--
1.7.4.4
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]