diff --git a/core/wma/src/wma_features.c b/core/wma/src/wma_features.c index 7932fbb74bd5..80d62024cd26 100644 --- a/core/wma/src/wma_features.c +++ b/core/wma/src/wma_features.c @@ -5224,6 +5224,13 @@ int wma_unified_power_debug_stats_event_handler(void *handle, return -EINVAL; } + if (param_buf->num_debug_register > ((WMI_SVC_MSG_MAX_SIZE - + sizeof(wmi_pdev_chip_power_stats_event_fixed_param)) / + sizeof(uint32_t))) { + WMA_LOGE("excess payload: LEN num_debug_register:%u", + param_buf->num_debug_register); + return -EINVAL; + } debug_registers = param_tlvs->debug_registers; stats_registers_len = (sizeof(uint32_t) * param_buf->num_debug_register);