If we throw away the very last item on the list, then we could end up
with a use after free of "dr".

Fixes: 15ca17645f19 ('PCI: hv: Add paravirtual PCI front-end for Microsoft 
Hyper-V VMs')
Signed-off-by: Dan Carpenter <dan.carpen...@oracle.com>

diff --git a/drivers/pci/host/pci-hyperv.c b/drivers/pci/host/pci-hyperv.c
index 9391dee..9b66ffe 100644
--- a/drivers/pci/host/pci-hyperv.c
+++ b/drivers/pci/host/pci-hyperv.c
@@ -1397,6 +1397,7 @@ static void pci_devices_present_work(struct work_struct 
*work)
                /* Throw this away if the list still has stuff in it. */
                if (!list_empty(&hbus->dr_list)) {
                        kfree(dr);
+                       dr = NULL;
                        continue;
                }
        }

Reply via email to