Fix status code in SAE/DPP association PMKID mismatch (driver-AP-SME)
wpa_validate_wpa_ie() was already extended to cover these cases with WPA_INVALID_PMKID return value, but hostapd_notif_assoc() did not have code for mapping this into the appropriate status code (STATUS_INVALID_PMKID) and ended up using the default (WLAN_STATUS_INVALID_IE) instead. This caused AP SME-in-driver cases returning incorrect status code when the AP did not have a matching PMKSA cache entry. This could result in unexpected station behavior where the station could continue trying to use a PMKSA cache entry that the AP does not have and not being able to recover this. Fix this by adding the previously missed mapping of validation errors to status/reason codes. Fixes:567da5bbd0
("DPP: Add new AKM") Fixes:458d8984de
("SAE: Reject request with mismatching PMKID (no PMKSA cache entry)") Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
This commit is contained in:
parent
9c7ab4c5df
commit
93ba13bcfd
1 changed files with 3 additions and 0 deletions
|
@ -344,6 +344,9 @@ int hostapd_notif_assoc(struct hostapd_data *hapd, const u8 *addr,
|
||||||
} else if (res == WPA_INVALID_MGMT_GROUP_CIPHER) {
|
} else if (res == WPA_INVALID_MGMT_GROUP_CIPHER) {
|
||||||
reason = WLAN_REASON_CIPHER_SUITE_REJECTED;
|
reason = WLAN_REASON_CIPHER_SUITE_REJECTED;
|
||||||
status = WLAN_STATUS_CIPHER_REJECTED_PER_POLICY;
|
status = WLAN_STATUS_CIPHER_REJECTED_PER_POLICY;
|
||||||
|
} else if (res == WPA_INVALID_PMKID) {
|
||||||
|
reason = WLAN_REASON_INVALID_PMKID;
|
||||||
|
status = WLAN_STATUS_INVALID_PMKID;
|
||||||
} else {
|
} else {
|
||||||
reason = WLAN_REASON_INVALID_IE;
|
reason = WLAN_REASON_INVALID_IE;
|
||||||
status = WLAN_STATUS_INVALID_IE;
|
status = WLAN_STATUS_INVALID_IE;
|
||||||
|
|
Loading…
Reference in a new issue