diff --git a/wmi/src/wmi_unified_tlv.c b/wmi/src/wmi_unified_tlv.c index 2bb995a33374..23fb9d19a187 100644 --- a/wmi/src/wmi_unified_tlv.c +++ b/wmi/src/wmi_unified_tlv.c @@ -8157,6 +8157,12 @@ static host_mem_req *extract_host_mem_req_tlv(wmi_unified_t wmi_handle, return NULL; } + if (ev->num_mem_reqs > param_buf->num_mem_reqs) { + WMI_LOGE("Invalid num_mem_reqs %d:%d", + ev->num_mem_reqs, param_buf->num_mem_reqs); + return NULL; + } + *num_entries = ev->num_mem_reqs; return (host_mem_req *)param_buf->mem_reqs;