diff --git a/src/ap/drv_callbacks.c b/src/ap/drv_callbacks.c index 9faac0ddc..a8b339f58 100644 --- a/src/ap/drv_callbacks.c +++ b/src/ap/drv_callbacks.c @@ -388,13 +388,15 @@ int hostapd_notif_assoc(struct hostapd_data *hapd, const u8 *addr, goto fail; } - if ((sta->flags & (WLAN_STA_ASSOC | WLAN_STA_MFP)) == - (WLAN_STA_ASSOC | WLAN_STA_MFP) && + if ((sta->flags & + (WLAN_STA_ASSOC | WLAN_STA_MFP | WLAN_STA_AUTHORIZED)) == + (WLAN_STA_ASSOC | WLAN_STA_MFP | WLAN_STA_AUTHORIZED) && !sta->sa_query_timed_out && sta->sa_query_count > 0) ap_check_sa_query_timeout(hapd, sta); - if ((sta->flags & (WLAN_STA_ASSOC | WLAN_STA_MFP)) == - (WLAN_STA_ASSOC | WLAN_STA_MFP) && + if ((sta->flags & + (WLAN_STA_ASSOC | WLAN_STA_MFP | WLAN_STA_AUTHORIZED)) == + (WLAN_STA_ASSOC | WLAN_STA_MFP | WLAN_STA_AUTHORIZED) && !sta->sa_query_timed_out && (sta->auth_alg != WLAN_AUTH_FT)) { /* diff --git a/src/ap/ieee802_11.c b/src/ap/ieee802_11.c index 13431d567..e3a9cbee9 100644 --- a/src/ap/ieee802_11.c +++ b/src/ap/ieee802_11.c @@ -3328,13 +3328,15 @@ static int check_assoc_ies(struct hostapd_data *hapd, struct sta_info *sta, resp = wpa_res_to_status_code(res); if (resp != WLAN_STATUS_SUCCESS) return resp; - if ((sta->flags & (WLAN_STA_ASSOC | WLAN_STA_MFP)) == - (WLAN_STA_ASSOC | WLAN_STA_MFP) && + if ((sta->flags & + (WLAN_STA_ASSOC | WLAN_STA_MFP | WLAN_STA_AUTHORIZED)) == + (WLAN_STA_ASSOC | WLAN_STA_MFP | WLAN_STA_AUTHORIZED) && !sta->sa_query_timed_out && sta->sa_query_count > 0) ap_check_sa_query_timeout(hapd, sta); - if ((sta->flags & (WLAN_STA_ASSOC | WLAN_STA_MFP)) == - (WLAN_STA_ASSOC | WLAN_STA_MFP) && + if ((sta->flags & + (WLAN_STA_ASSOC | WLAN_STA_MFP | WLAN_STA_AUTHORIZED)) == + (WLAN_STA_ASSOC | WLAN_STA_MFP | WLAN_STA_AUTHORIZED) && !sta->sa_query_timed_out && (!reassoc || sta->auth_alg != WLAN_AUTH_FT)) { /*