diff options
| author | Selvaraj, Sridhar <sselvara@codeaurora.org> | 2016-06-23 20:44:09 +0530 |
|---|---|---|
| committer | qcabuildsw <qcabuildsw@localhost> | 2016-09-02 17:22:35 -0700 |
| commit | 94ece202c50bad62c2a01cb981d70179cbcf483a (patch) | |
| tree | 58662c64dd21ffa292fdf0e3c72f70b4b1a4fe3a | |
| parent | 4d6c29599dd28ed3540f1ec3e83cfdbb261753af (diff) | |
qcacld-3.0: Fix Ext Cap IE mismatch in Probe/Assoc Response frames
qcacld-2.0 to qcacld-3.0 propagation
In SAP mode, while sending Probe response template to HAL from driver,
ext cap IE should be merged only if it is present or received from hostapd.
In function limSendProbeRspTemplateToHal, extcap_present bool is wrongly
initialized to true which leads to updation of the extended Cap IE with
junk values in Probe response even for the cases where driver is not
supposed to update it, i.e. cases where the ext cap IE is not present or
not received from hostapd
Git-commit: a7256f3483c0a26c8715f2ae6166289de6da6b1e
Change-Id: If82fbba4c20b5e96dbe1b11c97ab557ded488f3e
CRs-Fixed: 995545
| -rw-r--r-- | core/mac/src/pe/lim/lim_send_management_frames.c | 5 | ||||
| -rw-r--r-- | core/mac/src/pe/sch/sch_api.c | 5 |
2 files changed, 6 insertions, 4 deletions
diff --git a/core/mac/src/pe/lim/lim_send_management_frames.c b/core/mac/src/pe/lim/lim_send_management_frames.c index 5b83e39742a9..dfde5ffce65e 100644 --- a/core/mac/src/pe/lim/lim_send_management_frames.c +++ b/core/mac/src/pe/lim/lim_send_management_frames.c @@ -532,7 +532,7 @@ lim_send_probe_rsp_mgmt_frame(tpAniSirGlobal mac_ctx, uint8_t sme_sessionid = 0; bool is_vht_enabled = false; tDot11fIEExtCap extracted_ext_cap; - bool extracted_ext_cap_flag = true; + bool extracted_ext_cap_flag = false; /* We don't answer requests in this case*/ if (ANI_DRIVER_TYPE(mac_ctx) == eDRIVER_TYPE_MFG) @@ -734,9 +734,10 @@ lim_send_probe_rsp_mgmt_frame(tpAniSirGlobal mac_ctx, add_ie, &addn_ie_len, &extracted_ext_cap); if (eSIR_SUCCESS != sir_status) { - extracted_ext_cap_flag = false; lim_log(mac_ctx, LOG1, FL("Unable to strip off ExtCap IE")); + } else { + extracted_ext_cap_flag = true; } bytes = bytes + addn_ie_len; diff --git a/core/mac/src/pe/sch/sch_api.c b/core/mac/src/pe/sch/sch_api.c index a61d0fa7e888..2eb27f8e73ec 100644 --- a/core/mac/src/pe/sch/sch_api.c +++ b/core/mac/src/pe/sch/sch_api.c @@ -387,7 +387,7 @@ uint32_t lim_send_probe_rsp_template_to_hal(tpAniSirGlobal pMac, uint32_t addnIELenWoP2pIe = 0; uint32_t retStatus; tDot11fIEExtCap extracted_extcap; - bool extcap_present = true; + bool extcap_present = false; tDot11fProbeResponse *prb_rsp_frm; tSirRetStatus status; uint16_t addn_ielen = 0; @@ -458,8 +458,9 @@ uint32_t lim_send_probe_rsp_template_to_hal(tpAniSirGlobal pMac, status = lim_strip_extcap_update_struct(pMac, addIE, &addn_ielen, &extracted_extcap); if (eSIR_SUCCESS != status) { - extcap_present = false; sch_log(pMac, LOG1, FL("extcap not extracted")); + } else { + extcap_present = true; } } |
