diff mbox series

wpa_supplicant: Stop SA query on disconnection

Message ID 20190403151719.12165-4-andrei.otcheretianski@intel.com
State Accepted
Headers show
Series wpa_supplicant: Stop SA query on disconnection | expand

Commit Message

Andrei Otcheretianski April 3, 2019, 3:17 p.m. UTC
SA query wasn't stopped after disconnection, which could potentially
result in an unexpected SA timeout firing later when already connected
to another AP.
Fix that, by stopping SA query when disconnected.
While at it, remove FT ies clearing from sme_deinit() as it is done
twice.

Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
---
 wpa_supplicant/sme.c | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

Comments

Jouni Malinen April 16, 2019, 8:12 a.m. UTC | #1
On Wed, Apr 03, 2019 at 06:17:14PM +0300, Andrei Otcheretianski wrote:
> SA query wasn't stopped after disconnection, which could potentially
> result in an unexpected SA timeout firing later when already connected
> to another AP.
> Fix that, by stopping SA query when disconnected.
> While at it, remove FT ies clearing from sme_deinit() as it is done
> twice.

Thanks, applied.
diff mbox series

Patch

diff --git a/wpa_supplicant/sme.c b/wpa_supplicant/sme.c
index b0fb62bb0e..c3afe90ca9 100644
--- a/wpa_supplicant/sme.c
+++ b/wpa_supplicant/sme.c
@@ -1984,17 +1984,14 @@  void sme_clear_on_disassoc(struct wpa_supplicant *wpa_s)
 	if (wpa_s->sme.ft_ies || wpa_s->sme.ft_used)
 		sme_update_ft_ies(wpa_s, NULL, NULL, 0);
 #endif /* CONFIG_IEEE80211R */
+#ifdef CONFIG_IEEE80211W
+	sme_stop_sa_query(wpa_s);
+#endif /* CONFIG_IEEE80211W */
 }
 
 
 void sme_deinit(struct wpa_supplicant *wpa_s)
 {
-	os_free(wpa_s->sme.ft_ies);
-	wpa_s->sme.ft_ies = NULL;
-	wpa_s->sme.ft_ies_len = 0;
-#ifdef CONFIG_IEEE80211W
-	sme_stop_sa_query(wpa_s);
-#endif /* CONFIG_IEEE80211W */
 	sme_clear_on_disassoc(wpa_s);
 
 	eloop_cancel_timeout(sme_assoc_timer, wpa_s, NULL);