From dabdef9e048b17b22b1c025ad592922eab30dda8 Mon Sep 17 00:00:00 2001 From: Arik Nemtsov Date: Thu, 10 Dec 2015 12:56:07 +0200 Subject: [PATCH] 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. Signed-off-by: Arik Nemtsov --- 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 48752d728..86e509e24 100644 --- a/src/rsn_supp/tdls.c +++ b/src/rsn_supp/tdls.c @@ -2176,6 +2176,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) {