Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2da8cbf8 authored by Amitkumar Karwar's avatar Amitkumar Karwar Committed by John W. Linville
Browse files

mwifiex: add NULL checks in driver unload path



If driver load is failed, sometimes few pointers may remain
uninitialized ex. priv->wdev, priv->netdev, adapter->sleep_cfm
This will cause NULL pointer dereferance while unloading the
driver.

Signed-off-by: default avatarAmitkumar Karwar <akarwar@marvell.com>
Signed-off-by: default avatarKiran Divekar <dkiran@marvell.com>
Signed-off-by: default avatarBing Zhao <bzhao@marvell.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 07445f68
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -382,6 +382,7 @@ mwifiex_free_adapter(struct mwifiex_adapter *adapter)

	adapter->if_ops.cleanup_if(adapter);

	if (adapter->sleep_cfm)
		dev_kfree_skb_any(adapter->sleep_cfm);
}

+8 −4
Original line number Diff line number Diff line
@@ -822,7 +822,9 @@ int mwifiex_remove_card(struct mwifiex_adapter *adapter, struct semaphore *sem)
			continue;

		rtnl_lock();
		mwifiex_del_virtual_intf(priv->wdev->wiphy, priv->netdev);
		if (priv->wdev && priv->netdev)
			mwifiex_del_virtual_intf(priv->wdev->wiphy,
						 priv->netdev);
		rtnl_unlock();
	}

@@ -830,9 +832,11 @@ int mwifiex_remove_card(struct mwifiex_adapter *adapter, struct semaphore *sem)
	if (!priv)
		goto exit_remove;

	if (priv->wdev) {
		wiphy_unregister(priv->wdev->wiphy);
		wiphy_free(priv->wdev->wiphy);
		kfree(priv->wdev);
	}

	mwifiex_terminate_workqueue(adapter);