TDLS: Fix TPK M2 processing in concurrent initiation case
If we accept the peer TPK M1 after having sent our TPK M1, we need to reject TPK M2 from the peer to avoid going through two TDLS setup exchanges. Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
This commit is contained in:
parent
81266da728
commit
1d43e28a59
1 changed files with 10 additions and 0 deletions
|
@ -1807,6 +1807,16 @@ static int wpa_tdls_process_tpk_m2(struct wpa_sm *sm, const u8 *src_addr,
|
|||
"TPK M2: " MACSTR, MAC2STR(src_addr));
|
||||
return -1;
|
||||
}
|
||||
if (!peer->initiator) {
|
||||
/*
|
||||
* This may happen if both devices try to initiate TDLS at the
|
||||
* same time and we accept the TPK M1 from the peer in
|
||||
* wpa_tdls_process_tpk_m1() and clear our previous state.
|
||||
*/
|
||||
wpa_printf(MSG_INFO, "TDLS: We were not the initiator, so "
|
||||
"ignore TPK M2 from " MACSTR, MAC2STR(src_addr));
|
||||
return -1;
|
||||
}
|
||||
wpa_tdls_tpk_retry_timeout_cancel(sm, peer, WLAN_TDLS_SETUP_REQUEST);
|
||||
|
||||
if (len < 3 + 2 + 1)
|
||||
|
|
Loading…
Reference in a new issue