Explorar el Código

qcacld-3.0: Fix for CCKM fast roaming failure.

This is qcacld-2.0 to qcacld-3.0 propagation

Due to cleanup in function limSendReassocReqWithFTIEsMgmtFrame()
assocReqLen was not being set to zero when the corresponding buffer
was NULL. This caused memory copy in buffers being passed between
PE and SME and HDD to be improper. HDD when reading the buffer
wrongly read it from wrong offset and hence RSN IEs being passed to
supplicant are all zeros. This patch fixes this by setting
assocReqLen = 0 when AssocReq buff is NULL

Change-Id: I0edaff93fcdbb2d5ae80478a76f07cb4dee8aceb
CRs-Fixed: 929797
Naveen Rawat hace 9 años
padre
commit
83102eff80
Se han modificado 1 ficheros con 4 adiciones y 0 borrados
  1. 4 0
      core/mac/src/pe/lim/lim_send_management_frames.c

+ 4 - 0
core/mac/src/pe/lim/lim_send_management_frames.c

@@ -1903,6 +1903,7 @@ lim_send_assoc_req_mgmt_frame(tpAniSirGlobal mac_ctx,
 	if (pe_session->assocReq != NULL) {
 		cdf_mem_free(pe_session->assocReq);
 		pe_session->assocReq = NULL;
+		pe_session->assocReqLen = 0;
 	}
 
 	if (add_ie_len) {
@@ -2312,6 +2313,7 @@ lim_send_reassoc_req_with_ft_ies_mgmt_frame(tpAniSirGlobal mac_ctx,
 	if (pe_session->assocReq != NULL) {
 		cdf_mem_free(pe_session->assocReq);
 		pe_session->assocReq = NULL;
+		pe_session->assocReqLen = 0;
 	}
 
 	if (add_ie_len) {
@@ -2376,6 +2378,7 @@ lim_send_reassoc_req_with_ft_ies_mgmt_frame(tpAniSirGlobal mac_ctx,
 		}
 	} else {
 		lim_log(mac_ctx, LOG1, FL("FT IEs not present"));
+		pe_session->assocReqLen = 0;
 	}
 
 #ifdef FEATURE_WLAN_DIAG_SUPPORT
@@ -2686,6 +2689,7 @@ lim_send_reassoc_req_mgmt_frame(tpAniSirGlobal pMac,
 	if (psessionEntry->assocReq != NULL) {
 		cdf_mem_free(psessionEntry->assocReq);
 		psessionEntry->assocReq = NULL;
+		psessionEntry->assocReqLen = 0;
 	}
 
 	if (nAddIELen) {