提交 1164e1a2 编写于 作者: E Eric Blake

pci: fix null pointer dereference

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.
上级 4d080ee4
......@@ -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) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册