diff mbox series

[PATCHv2] cfg80211: Skip key deletion for open associations

Message ID 20210125192046.975-1-chaitanya.mgit@gmail.com
State New
Headers show
Series [PATCHv2] cfg80211: Skip key deletion for open associations | expand

Commit Message

Chaitanya Tata Jan. 25, 2021, 7:20 p.m. UTC
From: Chaitanya Tata <chaitanya.mgit@gmail.com>

From: Chaitanya Tata <chaitanya.mgit@gmail.com>

If the association is open (no authentication and encryption) no need
to delete the keys, though this is handled by all drivers, this is
unnecessary.

Signed-off-by: Chaitanya Tata <chaitanya.tata@bluwireless.com>
---
v2: Move kfree after check.
---
 net/wireless/sme.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)
diff mbox series

Patch

diff --git a/net/wireless/sme.c b/net/wireless/sme.c
index 38df713f2e2e..016655595b48 100644
--- a/net/wireless/sme.c
+++ b/net/wireless/sme.c
@@ -1098,8 +1098,6 @@  void __cfg80211_disconnected(struct net_device *dev, const u8 *ie,
 	wdev->current_bss = NULL;
 	wdev->ssid_len = 0;
 	wdev->conn_owner_nlportid = 0;
-	kfree_sensitive(wdev->connect_keys);
-	wdev->connect_keys = NULL;
 
 	nl80211_send_disconnected(rdev, dev, reason, ie, ie_len, from_ap);
 
@@ -1113,7 +1111,7 @@  void __cfg80211_disconnected(struct net_device *dev, const u8 *ie,
 	 * Delete all the keys ... pairwise keys can't really
 	 * exist any more anyway, but default keys might.
 	 */
-	if (rdev->ops->del_key) {
+	if (wdev->connect_keys && rdev->ops->del_key) {
 		int max_key_idx = 5;
 
 		if (wiphy_ext_feature_isset(
@@ -1127,6 +1125,9 @@  void __cfg80211_disconnected(struct net_device *dev, const u8 *ie,
 			rdev_del_key(rdev, dev, i, false, NULL);
 	}
 
+	kfree_sensitive(wdev->connect_keys);
+	wdev->connect_keys = NULL;
+
 	rdev_set_qos_map(rdev, dev, NULL);
 
 #ifdef CONFIG_CFG80211_WEXT