Procházet zdrojové kódy

net/cxgb4: Fix referencing freed adapter

The adapter is freed before we check its flags. It was caused
by commit 144be3d ("net/cxgb4: Avoid disabling PCI device for
towice"). The problem was reported by Intel's "0-day" tool.

The patch fixes it to avoid reverting commit 144be3d.

Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Gavin Shan <shangw@linux.vnet.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Gavin Shan před 11 roky
rodič
revize
8b662fe70c
1 změnil soubory, kde provedl 1 přidání a 1 odebrání
  1. 1 1
      drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c

+ 1 - 1
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c

@@ -6163,13 +6163,13 @@ static void remove_one(struct pci_dev *pdev)
 		iounmap(adapter->regs);
 		if (!is_t4(adapter->params.chip))
 			iounmap(adapter->bar2);
-		kfree(adapter);
 		pci_disable_pcie_error_reporting(pdev);
 		if ((adapter->flags & DEV_ENABLED)) {
 			pci_disable_device(pdev);
 			adapter->flags &= ~DEV_ENABLED;
 		}
 		pci_release_regions(pdev);
+		kfree(adapter);
 	} else
 		pci_release_regions(pdev);
 }