summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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) {