Commit f1a094a8 authored by Rajesh Borundia's avatar Rajesh Borundia Committed by David S. Miller

qlcnic: Fix NULL dereference in error path.

o Fix for smatch tool reported error
   drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c:2029
   qlcnic_probe() error: potential NULL dereference 'adapter'.
o While returning from an error path in probe, adapter is not
  initialized. So do not access adapter in cleanup path.
Signed-off-by: default avatarRajesh Borundia <rajesh.borundia@qlogic.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent d8fe3436
...@@ -546,11 +546,10 @@ void qlcnic_teardown_intr(struct qlcnic_adapter *adapter) ...@@ -546,11 +546,10 @@ void qlcnic_teardown_intr(struct qlcnic_adapter *adapter)
} }
} }
static void static void qlcnic_cleanup_pci_map(struct qlcnic_hardware_context *ahw)
qlcnic_cleanup_pci_map(struct qlcnic_adapter *adapter)
{ {
if (adapter->ahw->pci_base0 != NULL) if (ahw->pci_base0 != NULL)
iounmap(adapter->ahw->pci_base0); iounmap(ahw->pci_base0);
} }
static int qlcnic_get_act_pci_func(struct qlcnic_adapter *adapter) static int qlcnic_get_act_pci_func(struct qlcnic_adapter *adapter)
...@@ -2026,7 +2025,7 @@ qlcnic_probe(struct pci_dev *pdev, const struct pci_device_id *ent) ...@@ -2026,7 +2025,7 @@ qlcnic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
free_netdev(netdev); free_netdev(netdev);
err_out_iounmap: err_out_iounmap:
qlcnic_cleanup_pci_map(adapter); qlcnic_cleanup_pci_map(ahw);
err_out_free_hw_res: err_out_free_hw_res:
kfree(ahw); kfree(ahw);
...@@ -2083,7 +2082,7 @@ static void qlcnic_remove(struct pci_dev *pdev) ...@@ -2083,7 +2082,7 @@ static void qlcnic_remove(struct pci_dev *pdev)
qlcnic_remove_sysfs(adapter); qlcnic_remove_sysfs(adapter);
qlcnic_cleanup_pci_map(adapter); qlcnic_cleanup_pci_map(adapter->ahw);
qlcnic_release_firmware(adapter); qlcnic_release_firmware(adapter);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment