summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAvraham Stern <avraham.stern@intel.com>2018-02-19 14:48:38 +0200
committerJohannes Berg <johannes.berg@intel.com>2018-02-19 14:53:12 +0100
commit3027a8e799b20fc922496a12f8ad2f9f36a8a696 (patch)
tree4586e4a684002f09b114ce476e7ea9a818535b64
parent95f3ce6a77893ac828ba841df44421620de4314b (diff)
downloadlinux-3027a8e799b20fc922496a12f8ad2f9f36a8a696.tar.gz
linux-3027a8e799b20fc922496a12f8ad2f9f36a8a696.tar.bz2
linux-3027a8e799b20fc922496a12f8ad2f9f36a8a696.zip
cfg80211: clear wep keys after disconnection
When a low level driver calls cfg80211_disconnected(), wep keys are not cleared. As a result, following connection requests will fail since cfg80211 internal state shows a connection is still in progress. Fix this by clearing the wep keys when disconnecting. Signed-off-by: Avraham Stern <avraham.stern@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-rw-r--r--net/wireless/sme.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/net/wireless/sme.c b/net/wireless/sme.c
index fdb3646274a5..701cfd7acc1b 100644
--- a/net/wireless/sme.c
+++ b/net/wireless/sme.c
@@ -1032,6 +1032,8 @@ void __cfg80211_disconnected(struct net_device *dev, const u8 *ie,
wdev->current_bss = NULL;
wdev->ssid_len = 0;
wdev->conn_owner_nlportid = 0;
+ kzfree(wdev->connect_keys);
+ wdev->connect_keys = NULL;
nl80211_send_disconnected(rdev, dev, reason, ie, ie_len, from_ap);