qcacld-3.0: Fix frame lenth information to cfg80211
Propagation from qcacld-2.0 to qcacld-3.0
During BSS frame update, frame_len is calculated as size of ieee80211_mgmt
and ielen. Since ieee80211_mgmt is a generic frame structure and different
frame structures are defined under union this may exceed the actual frame
len.
Fix by calculatiing offset of variable(ies) and ies length.
Change-Id: Ied8e4e604e41de1ac5ccc047ef5cc3cdb05a9445
CRs-Fixed: 2121711
diff --git a/core/hdd/src/wlan_hdd_cfg80211.c b/core/hdd/src/wlan_hdd_cfg80211.c
index bea4e2f..91b4000 100644
--- a/core/hdd/src/wlan_hdd_cfg80211.c
+++ b/core/hdd/src/wlan_hdd_cfg80211.c
@@ -14649,7 +14649,8 @@
struct ieee80211_channel *chan;
struct ieee80211_mgmt *mgmt = NULL;
struct cfg80211_bss *bss_status = NULL;
- size_t frame_len = sizeof(struct ieee80211_mgmt) + ie_length;
+ size_t frame_len = ie_length + offsetof(struct ieee80211_mgmt,
+ u.probe_resp.variable);
int rssi = 0;
struct hdd_context *hdd_ctx;
struct timespec ts;