diff options
author | Hsiu-Chang Chen <hsiuchangchen@google.com> | 2020-03-09 19:15:57 +0530 |
---|---|---|
committer | Hsiu-Chang Chen <hsiuchangchen@google.com> | 2022-04-13 14:34:29 +0800 |
commit | 12c43b9b29b1deb04a0b478218eff532a86bad6d (patch) | |
tree | 8cfbd406f3960e6e05ce238438896925f4ad332d | |
parent | 215caf43a0302c23676956cd86df55ce017e9cdb (diff) | |
download | wlan-12c43b9b29b1deb04a0b478218eff532a86bad6d.tar.gz |
WifiHal: Allow WLAN_NL_MSG_OEM with new cld80211 attrs.
WLAN_NL_MSG_OEM uses CLD80211_ATTR_DATA for storing
binary data. With added support to cld80211 vendor subcmds
wifi hal will receive new attributes in which the data is
packed as nested sub attributes. Wifihal will forward the
new responses to its clients
Bug: 220992475
Test: VtsHalWifiNan/VtsHalWifiRtt
CRs-Fixed: 2637824
Change-Id: If4501d5e873622c254fb84a0d2949568d366f3da
-rw-r--r-- | qcwcn/wifi_hal/wifilogger_diag.cpp | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/qcwcn/wifi_hal/wifilogger_diag.cpp b/qcwcn/wifi_hal/wifilogger_diag.cpp index bdc9c7f..e1ed948 100644 --- a/qcwcn/wifi_hal/wifilogger_diag.cpp +++ b/qcwcn/wifi_hal/wifilogger_diag.cpp @@ -2597,14 +2597,14 @@ wifi_error diag_message_handler(hal_info *info, nl_msg *msg) clh = (tAniCLDHdr *)nla_data(tb_vendor[CLD80211_ATTR_DATA]); } } - if (!clh) { - ALOGE("Invalid data received from driver"); - return WIFI_SUCCESS; - } if((info->wifihal_ctrl_sock.s > 0) && (genlh->cmd == WLAN_NL_MSG_OEM)) { wifihal_ctrl_event_t *ctrl_evt; wifihal_mon_sock_t *reg; + if (!(tb_vendor[CLD80211_ATTR_DATA] || tb_vendor[CLD80211_ATTR_CMD])) { + ALOGE("Invalid oem data received from driver"); + return WIFI_SUCCESS; + } ctrl_evt = (wifihal_ctrl_event_t *)malloc(sizeof(*ctrl_evt) + nlh->nlmsg_len); if(ctrl_evt == NULL) @@ -2653,6 +2653,7 @@ wifi_error diag_message_handler(hal_info *info, nl_msg *msg) } } free(ctrl_evt); + return WIFI_SUCCESS; } } } else { @@ -2660,6 +2661,10 @@ wifi_error diag_message_handler(hal_info *info, nl_msg *msg) cmd = wnl->nlh.nlmsg_type; } + if (!clh) { + ALOGE("Invalid data received from driver"); + return WIFI_SUCCESS; + } /* Check nlmsg_type also to avoid processing unintended msgs */ if (cmd == ANI_NL_MSG_PUMAC) { if (!info->cldctx) { |