]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
Clear RSN timers for preauth and PTK rekeying on disassociation
authorJouni Malinen <jouni@qca.qualcomm.com>
Fri, 6 Mar 2015 16:40:28 +0000 (18:40 +0200)
committerJouni Malinen <j@w1.fi>
Fri, 6 Mar 2015 16:43:03 +0000 (18:43 +0200)
Previously, it was possible for the wpa_sm_start_preauth() and
wpa_sm_rekey_ptk() eloop callbacks to remain active after disconnection
and potentially continue to be used for the next association. This is
not correct behavior, so explicitly cancel these timeouts to avoid
unexpected attempts to complete RSN preauthentication or to request PTK
to be rekeyed.

It was possible to trigger this issue, e.g., by running the following
hwsim test case sequence: ap_wpa2_ptk_rekey ap_ft_sae_over_ds

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
src/rsn_supp/wpa.c

index b892a66da7b336ae31aef057bbf31f952fe76bd3..37e4b356156c01af466d613941077d586ccb22d5 100644 (file)
@@ -2282,6 +2282,8 @@ void wpa_sm_notify_assoc(struct wpa_sm *sm, const u8 *bssid)
  */
 void wpa_sm_notify_disassoc(struct wpa_sm *sm)
 {
+       eloop_cancel_timeout(wpa_sm_start_preauth, sm, NULL);
+       eloop_cancel_timeout(wpa_sm_rekey_ptk, sm, NULL);
        peerkey_deinit(sm);
        rsn_preauth_deinit(sm);
        pmksa_cache_clear_current(sm);