Browse Source

qcacld-3.0: Check for vendor vht ie to fill assoc ind param

Currently there is no check for vendor vht ie in lim fill
assoc indication param api. If a station fills its vhtcaps
in vendor vht ie in assoc request, lim does not fill
vhtcaps information in assoc indication params from
station's assoc request and it results in invalid caps info
in assoc indication to upper layers.

To avoid this issue, add a check to look for vendor vht caps
before copy of the vht caps to assoc indication from assoc
request.

Change-Id: If80136d9a923d23b7db3ebec1d49e6e4012e6dd2
CRs-Fixed: 2633003
Ashish Kumar Dhanotiya 5 years ago
parent
commit
919239acdb
1 changed files with 8 additions and 2 deletions
  1. 8 2
      core/mac/src/pe/lim/lim_process_assoc_req_frame.c

+ 8 - 2
core/mac/src/pe/lim/lim_process_assoc_req_frame.c

@@ -2854,8 +2854,14 @@ bool lim_fill_lim_assoc_ind_params(
 		assoc_ind->ecsa_capable =
 		((struct s_ext_cap *)assoc_req->ExtCap.bytes)->ext_chan_switch;
 	/* updates VHT information in assoc indication */
-	 qdf_mem_copy(&assoc_ind->vht_caps, &assoc_req->VHTCaps,
-		      sizeof(tDot11fIEVHTCaps));
+	if (assoc_req->VHTCaps.present)
+		qdf_mem_copy(&assoc_ind->vht_caps, &assoc_req->VHTCaps,
+			     sizeof(tDot11fIEVHTCaps));
+	else if (assoc_req->vendor_vht_ie.VHTCaps.present)
+		qdf_mem_copy(&assoc_ind->vht_caps,
+			     &assoc_req->vendor_vht_ie.VHTCaps,
+			     sizeof(tDot11fIEVHTCaps));
+
 	lim_fill_assoc_ind_vht_info(mac_ctx, session_entry, assoc_req,
 				    assoc_ind, sta_ds);
 	assoc_ind->he_caps_present = assoc_req->he_cap.present;