Commit 0b9ba6a3 authored by GangCao's avatar GangCao Committed by Tomasz Zawadzki
Browse files

lib/vmd: return -1 if NVMe driver is not found



Fix issue: potential NULL pointer dereference

Change-Id: I23f90616661fdebaacb041bc9f47284231601136
Signed-off-by: default avatarGangCao <gang.cao@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14329


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarDong Yi <dongx.yi@intel.com>
Reviewed-by: default avatarKonrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Reviewed-by: default avatarChangpeng Liu <changpeng.liu@intel.com>
Community-CI: Mellanox Build Bot
parent cdf61c2f
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -882,6 +882,7 @@ vmd_init_end_device(struct vmd_pci_device *dev)
{
	struct vmd_pci_bus *bus = dev->bus;
	struct vmd_adapter *vmd;
	struct spdk_pci_driver *driver;
	uint8_t bdf[32];
	int rc;

@@ -898,7 +899,9 @@ vmd_init_end_device(struct vmd_pci_device *dev)
		SPDK_INFOLOG(vmd, "Initializing NVMe device at %s\n", bdf);
		dev->pci.parent = dev->bus->vmd->pci;

		rc = spdk_pci_hook_device(spdk_pci_nvme_get_driver(), &dev->pci);
		driver = spdk_pci_nvme_get_driver();
		assert(driver != NULL);
		rc = spdk_pci_hook_device(driver, &dev->pci);
		if (rc != 0) {
			SPDK_ERRLOG("Failed to hook device %s: %s\n", bdf, spdk_strerror(-rc));
			return -1;