lib/virtio: fix heap use after free issue.

fixes 79c7744efb

Signed-off-by: Seth Howell <seth.howell@intel.com>
Change-Id: Ia7919b8922de7e99b0a9f5266a96940f05f4865c
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/3609
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
This commit is contained in:
Seth Howell 2020-07-30 15:04:03 -07:00 committed by Jim Harris
parent beb468e9c7
commit 305d64589e

View File

@ -224,10 +224,14 @@ static void
modern_destruct_dev(struct virtio_dev *vdev) modern_destruct_dev(struct virtio_dev *vdev)
{ {
struct virtio_hw *hw = vdev->ctx; struct virtio_hw *hw = vdev->ctx;
struct spdk_pci_device *pci_dev;
if (hw != NULL) { if (hw != NULL) {
pci_dev = hw->pci_dev;
free_virtio_hw(hw); free_virtio_hw(hw);
spdk_pci_device_detach(hw->pci_dev); if (pci_dev) {
spdk_pci_device_detach(pci_dev);
}
} }
} }