AP: Don't increment auth_transaction upon SAE authentication failure

IEEE Std 802.11-2016, 12.4.7.6 specifies:

An SAE Commit message with a status code not equal to SUCCESS shall
indicate that a peer rejects a previously sent SAE Commit message.

An SAE Confirm message, with a status code not equal to SUCCESS, shall
indicate that a peer rejects a previously sent SAE Confirm message.

Thus when SAE authentication failure happens, authentication transaction
sequence number should not be incremented.

Signed-off-by: Jia Ding <jiad@codeaurora.org>
This commit is contained in:
Jia Ding 2021-07-14 14:59:26 +08:00 committed by Jouni Malinen
parent 84f6492eac
commit 9557ba336b

View file

@ -3943,8 +3943,10 @@ static void handle_auth(struct hostapd_data *hapd,
fail: fail:
reply_res = send_auth_reply(hapd, sta, mgmt->sa, mgmt->bssid, auth_alg, reply_res = send_auth_reply(hapd, sta, mgmt->sa, mgmt->bssid, auth_alg,
auth_transaction + 1, resp, resp_ies, auth_alg == WLAN_AUTH_SAE ?
resp_ies_len, "handle-auth"); auth_transaction : auth_transaction + 1,
resp, resp_ies, resp_ies_len,
"handle-auth");
if (sta && sta->added_unassoc && (resp != WLAN_STATUS_SUCCESS || if (sta && sta->added_unassoc && (resp != WLAN_STATUS_SUCCESS ||
reply_res != WLAN_STATUS_SUCCESS)) { reply_res != WLAN_STATUS_SUCCESS)) {