summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPixelBot AutoMerger <android-nexus-securitybot@system.gserviceaccount.com>2020-12-11 14:05:27 -0800
committerSecurityBot <android-nexus-securitybot@system.gserviceaccount.com>2020-12-11 14:05:27 -0800
commit3aacb454c72545f386c01e790b61f430d96438aa (patch)
tree63fc34b2e44aba033c5a44702c50c375be39b3e6
parent854a33723eab0f3d0987aa490000da233b82b10f (diff)
parent914e8959850aa4d449ae73ec74984a98ae544e9d (diff)
downloadqcacld-3aacb454c72545f386c01e790b61f430d96438aa.tar.gz
SBMerger: 325904710 Change-Id: I120f3321891093d7f45d74258bc15ccfcd067cf5 Signed-off-by: SecurityBot <android-nexus-securitybot@system.gserviceaccount.com>
-rw-r--r--core/mac/src/pe/include/lim_session.h1
-rw-r--r--core/mac/src/pe/lim/lim_process_auth_frame.c5
2 files changed, 5 insertions, 1 deletions
diff --git a/core/mac/src/pe/include/lim_session.h b/core/mac/src/pe/include/lim_session.h
index 121acfecb3..89afa0f5b0 100644
--- a/core/mac/src/pe/include/lim_session.h
+++ b/core/mac/src/pe/include/lim_session.h
@@ -509,6 +509,7 @@ typedef struct sPESession /* Added to Support BT-AMP */
bool ch_switch_in_progress;
/* previous auth frame's sequence number */
uint16_t prev_auth_seq_num;
+ tSirMacAddr prev_auth_mac_addr;
bool fw_roaming_started;
bool recvd_deauth_while_roaming;
bool recvd_disassoc_while_roaming;
diff --git a/core/mac/src/pe/lim/lim_process_auth_frame.c b/core/mac/src/pe/lim/lim_process_auth_frame.c
index 53585671f5..6ea9bf8055 100644
--- a/core/mac/src/pe/lim/lim_process_auth_frame.c
+++ b/core/mac/src/pe/lim/lim_process_auth_frame.c
@@ -1170,14 +1170,17 @@ lim_process_auth_frame(tpAniSirGlobal mac_ctx, uint8_t *rx_pkt_info,
* auth frame from AP which results in authentication failure.
*/
if (pe_session->prev_auth_seq_num == curr_seq_num &&
+ !qdf_mem_cmp(pe_session->prev_auth_mac_addr, &mac_hdr->sa,
+ ETH_ALEN) &&
mac_hdr->fc.retry) {
pe_err("auth frame, seq num: %d is already processed, drop it",
curr_seq_num);
return;
}
- /* save seq number in pe_session */
+ /* save seq number and mac_addr in pe_session */
pe_session->prev_auth_seq_num = curr_seq_num;
+ qdf_mem_copy(pe_session->prev_auth_mac_addr, mac_hdr->sa, ETH_ALEN);
body_ptr = WMA_GET_RX_MPDU_DATA(rx_pkt_info);