From a7baabbbe719f153fa05ee3858cae1dff914f183 Mon Sep 17 00:00:00 2001 From: Arik Nemtsov Date: Thu, 10 Dec 2015 12:56:07 +0200 Subject: TDLS: Ignore incoming TDLS Setup Response retries The Setup Response timer is relatively fast (500 ms) and there are instances where it fires on the responder side after the initiator has already sent out the TDLS Setup Confirm frame. Prevent the processing of this stale TDLS Setup Response frame on the initiator side. Bug: 65245581 Test: Wifi Integration Suite Merged-In: I0fadef8993a548d64a4280372bc105fefa11e62a Change-Id: I404ab3d3bb864d72c6189890d1d63d7b893f3f9e Signed-off-by: Arik Nemtsov Signed-off-by: Glen Kuhne --- src/rsn_supp/tdls.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/rsn_supp/tdls.c b/src/rsn_supp/tdls.c index cd34223f..ceccda9d 100644 --- a/src/rsn_supp/tdls.c +++ b/src/rsn_supp/tdls.c @@ -2058,6 +2058,14 @@ static int wpa_tdls_process_tpk_m2(struct wpa_sm *sm, const u8 *src_addr, "ignore TPK M2 from " MACSTR, MAC2STR(src_addr)); return -1; } + + if (peer->tpk_success) { + wpa_printf(MSG_INFO, "TDLS: Ignore incoming TPK M2 retry, from " + MACSTR " as TPK M3 was already sent", + MAC2STR(src_addr)); + return 0; + } + wpa_tdls_tpk_retry_timeout_cancel(sm, peer, WLAN_TDLS_SETUP_REQUEST); if (len < 3 + 2 + 1) { -- cgit v1.2.3