diff --git a/wmi_unified_tlv.c b/wmi_unified_tlv.c index 4327481a63..a4feac07c7 100644 --- a/wmi_unified_tlv.c +++ b/wmi_unified_tlv.c @@ -5886,7 +5886,9 @@ QDF_STATUS extract_encrypt_decrypt_resp_event_tlv(wmi_unified_t wmi_handle, resp->vdev_id = data_event->vdev_id; resp->status = data_event->status; - if (data_event->data_length > param_buf->num_enc80211_frame) { + if ((data_event->data_length > param_buf->num_enc80211_frame) || + (data_event->data_length > WMI_SVC_MSG_MAX_SIZE - WMI_TLV_HDR_SIZE - + sizeof(*data_event))) { WMI_LOGE("FW msg data_len %d more than TLV hdr %d", data_event->data_length, param_buf->num_enc80211_frame);