FT: Clear SME FT data on disassoc

SME ft_used flag is sometimes not cleared on disassoc. For example,
after initial FT connection, ft_used is set while ft_ies stays NULL.
Later on, upon disassoc, sme_update_ft_ies() is not invoked and ft_used
is not cleared. Fix this by invoking sme_update_ft_ies() also in case
ft_used is set.

This is needed to fix an issue with drivers that use nl80211 Connect API
with FT and expect to the NL80211_AUTHTYPE_OPEN specified in the Connect
command for the initial mobility domain association.

Signed-off-by: Ahmad Masri <amasri@codeaurora.org>
This commit is contained in:
Ahmad Masri 2018-04-30 13:42:04 +03:00 committed by Jouni Malinen
parent 98b806b03d
commit 60a5737e8f

View file

@ -1729,7 +1729,7 @@ void sme_clear_on_disassoc(struct wpa_supplicant *wpa_s)
sae_clear_data(&wpa_s->sme.sae); sae_clear_data(&wpa_s->sme.sae);
#endif /* CONFIG_SAE */ #endif /* CONFIG_SAE */
#ifdef CONFIG_IEEE80211R #ifdef CONFIG_IEEE80211R
if (wpa_s->sme.ft_ies) if (wpa_s->sme.ft_ies || wpa_s->sme.ft_used)
sme_update_ft_ies(wpa_s, NULL, NULL, 0); sme_update_ft_ies(wpa_s, NULL, NULL, 0);
#endif /* CONFIG_IEEE80211R */ #endif /* CONFIG_IEEE80211R */
} }