aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJouni Malinen <jouni@qca.qualcomm.com>2017-12-08 19:51:47 (GMT)
committerJouni Malinen <j@w1.fi>2017-12-08 19:54:40 (GMT)
commit97302b39dca60759e495e169148a2181318723e0 (patch)
treed11b9b09507fe09525637159d1696cdebb5e7487
parent9b0de99fac58dfc4ac8f0eaa05a5a537e5c223bd (diff)
downloadhostap-97302b39dca60759e495e169148a2181318723e0.zip
hostap-97302b39dca60759e495e169148a2181318723e0.tar.gz
hostap-97302b39dca60759e495e169148a2181318723e0.tar.bz2
wlantest: Try harder to find a STA entry with PTK for 4-address frames
Commit aab66128369c5953e70f867e997a54146bcca88b ('wlantest: Search bss/sta entry more thoroughly for 4-address frames') allowed wlantest to find a STA entry in this type of cases, but it was still possible for that STA entry to be the one that has no derived PTK while the STA entry for the other side of the link might have the derived PTK available. Extend this BSS/STA selection mechanism to use sta->ptk_set to determine which STA entry is more useful for decryption, i.e., select the one with a known PTK. Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
-rw-r--r--wlantest/rx_data.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/wlantest/rx_data.c b/wlantest/rx_data.c
index ce9ab0d..bafc33f 100644
--- a/wlantest/rx_data.c
+++ b/wlantest/rx_data.c
@@ -278,12 +278,15 @@ static void rx_data_bss_prot(struct wlantest *wt,
if (sta) {
sta->counters[
WLANTEST_STA_COUNTER_PROT_DATA_TX]++;
- } else {
+ }
+ if (!sta || !sta->ptk_set) {
bss2 = bss_find(wt, hdr->addr2);
if (bss2) {
- sta = sta_find(bss2, hdr->addr1);
- if (sta)
+ sta2 = sta_find(bss2, hdr->addr1);
+ if (sta2 && (!sta || sta2->ptk_set)) {
bss = bss2;
+ sta = sta2;
+ }
}
}
} else {