Browse Source

TDLS: Fix concurrent initialization test code

Must not use data from peer TDLS Setup Request if the concurrent
initialization from us is supposed to be the one that gets completed.
Jouni Malinen 13 years ago
parent
commit
da30c93ab1
1 changed files with 13 additions and 0 deletions
  1. 13 0
      src/rsn_supp/tdls.c

+ 13 - 0
src/rsn_supp/tdls.c

@@ -1553,6 +1553,19 @@ skip_rsn:
 		}
 	}
 
+#ifdef CONFIG_TDLS_TESTING
+	if (tdls_testing & TDLS_TESTING_CONCURRENT_INIT) {
+		if (os_memcmp(sm->own_addr, peer->addr, ETH_ALEN) < 0) {
+			/*
+			 * The request frame from us is going to win, so do not
+			 * replace information based on this request frame from
+			 * the peer.
+			 */
+			goto skip_rsn_check;
+		}
+	}
+#endif /* CONFIG_TDLS_TESTING */
+
 	peer->initiator = 0; /* Need to check */
 	peer->dtoken = dtoken;