summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHsiu-Chang Chen <hsiuchangchen@google.com>2020-03-09 19:15:57 +0530
committerHsiu-Chang Chen <hsiuchangchen@google.com>2022-04-13 14:34:29 +0800
commit12c43b9b29b1deb04a0b478218eff532a86bad6d (patch)
tree8cfbd406f3960e6e05ce238438896925f4ad332d
parent215caf43a0302c23676956cd86df55ce017e9cdb (diff)
downloadwlan-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.cpp13
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) {