WLAN: Handle De-auth Frame After Pre-Authentication
Fix to handle a de-authentication frame from AP2 while roaming from AP1 to AP2
CRs-Fixed: 438700
Change-Id: I20fbf8eada2f0cfb514fb2ce99cb6afd7a3ea7af
diff --git a/CORE/MAC/src/pe/lim/limProcessDeauthFrame.c b/CORE/MAC/src/pe/lim/limProcessDeauthFrame.c
index 1be3e0d..c4faa9f 100644
--- a/CORE/MAC/src/pe/lim/limProcessDeauthFrame.c
+++ b/CORE/MAC/src/pe/lim/limProcessDeauthFrame.c
@@ -92,6 +92,8 @@
tLimMlmAssocCnf mlmAssocCnf;
tLimMlmDeauthInd mlmDeauthInd;
tpDphHashNode pStaDs;
+ tpPESession pRoamSessionEntry=NULL;
+ tANI_U8 roamSessionId;
pHdr = WDA_GET_RX_MAC_HEADER(pRxPacketInfo);
@@ -216,7 +218,11 @@
* AP we're currently associated with (case a), then proceed
* with normal deauth processing.
*/
- if (limIsReassocInProgress(pMac,psessionEntry)) {
+ if ( psessionEntry->limReAssocbssId!=NULL )
+ {
+ pRoamSessionEntry = peFindSessionByBssid(pMac, psessionEntry->limReAssocbssId, &roamSessionId);
+ }
+ if (limIsReassocInProgress(pMac,psessionEntry) || limIsReassocInProgress(pMac,pRoamSessionEntry)) {
if (!IS_REASSOC_BSSID(pMac,pHdr->sa,psessionEntry)) {
PELOGE(limLog(pMac, LOGE, FL("Rcv Deauth from unknown/different AP while ReAssoc. Ignore \n"));)
limPrintMacAddr(pMac, pHdr->sa, LOGE);