xen/pciback: Check dev_data before using it
authorRoss Lagerwall <ross.lagerwall@citrix.com>
Fri, 14 Dec 2018 12:55:45 +0000 (12:55 +0000)
committerBoris Ostrovsky <boris.ostrovsky@oracle.com>
Mon, 17 Dec 2018 15:29:50 +0000 (10:29 -0500)
If pcistub_init_device fails, the release function will be called with
dev_data set to NULL.  Check it before using it to avoid a NULL pointer
dereference.

Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
drivers/xen/xen-pciback/pci_stub.c

index 59661db..097410a 100644 (file)
@@ -106,7 +106,8 @@ static void pcistub_device_release(struct kref *kref)
         * is called from "unbind" which takes a device_lock mutex.
         */
        __pci_reset_function_locked(dev);
-       if (pci_load_and_free_saved_state(dev, &dev_data->pci_saved_state))
+       if (dev_data &&
+           pci_load_and_free_saved_state(dev, &dev_data->pci_saved_state))
                dev_info(&dev->dev, "Could not reload PCI state\n");
        else
                pci_restore_state(dev);