summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorMichael Bestas <mkbestas@lineageos.org>2020-04-14 17:32:24 +0300
committerMichael Bestas <mkbestas@lineageos.org>2020-04-14 18:41:13 +0300
commit43e735b9e19f948ce5463348d908c606901c95a7 (patch)
tree873da85cd268f306fccf8c2e668569b9660ab982 /drivers
parent9eb199e06bc76fb2677052c3a171b2ab917c121d (diff)
Revert "Revert "qcacld-3.0: Fix OOB in wma_stats_event_handler""
* No longer required This reverts commit 1ceac8f3cc7f5a770a98bef65c4ab4c797cddbd2. Change-Id: Id752e4a61da70294444db7df032500502d3c05db
Diffstat (limited to 'drivers')
-rw-r--r--drivers/staging/qcacld-3.0/core/wma/src/wma_utils.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/staging/qcacld-3.0/core/wma/src/wma_utils.c b/drivers/staging/qcacld-3.0/core/wma/src/wma_utils.c
index 36811c666ba3..af9459c262e0 100644
--- a/drivers/staging/qcacld-3.0/core/wma/src/wma_utils.c
+++ b/drivers/staging/qcacld-3.0/core/wma/src/wma_utils.c
@@ -3296,6 +3296,14 @@ int wma_stats_event_handler(void *handle, uint8_t *cmd_param_info,
buf_len += event->num_peer_stats * sizeof(*peer_stats);
}
+ if (buf_len > param_buf->num_data) {
+ WMA_LOGE("%s: num_data: %d Invalid num_pdev_stats:%d or num_vdev_stats:%d or num_peer_stats:%d",
+ __func__, param_buf->num_data,
+ event->num_pdev_stats,
+ event->num_vdev_stats, event->num_peer_stats);
+ return -EINVAL;
+ }
+
rssi_event =
(wmi_per_chain_rssi_stats *) param_buf->chain_stats;
if (rssi_event) {
@@ -3316,7 +3324,6 @@ int wma_stats_event_handler(void *handle, uint8_t *cmd_param_info,
WMA_LOGE("excess wmi buffer: stats pdev %d vdev %d peer %d",
event->num_pdev_stats, event->num_vdev_stats,
event->num_peer_stats);
- QDF_ASSERT(0);
return -EINVAL;
}