summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CORE/SERVICES/WMA/wma.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/CORE/SERVICES/WMA/wma.c b/CORE/SERVICES/WMA/wma.c
index 0b7b88a20f3b..5477ac7e3c70 100644
--- a/CORE/SERVICES/WMA/wma.c
+++ b/CORE/SERVICES/WMA/wma.c
@@ -5321,6 +5321,15 @@ static int wma_unified_radio_tx_power_level_stats_event_handler(void *handle,
rs_results = (tSirWifiRadioStat *) &link_stats_results->results[0];
tx_power_level_values = (uint8 *) param_tlvs->tx_time_per_power_level;
+ if (rs_results->total_num_tx_power_levels &&
+ fixed_param->total_num_tx_power_levels >
+ rs_results->total_num_tx_power_levels) {
+ WMA_LOGE("%s: excess tx_power buffers:%d, total_num_tx_power_levels:%d",
+ __func__, fixed_param->total_num_tx_power_levels,
+ rs_results->total_num_tx_power_levels);
+ return -EINVAL;
+ }
+
rs_results->total_num_tx_power_levels =
fixed_param->total_num_tx_power_levels;
if (!rs_results->total_num_tx_power_levels)