From 81b7a0a0e08c1a7f7099c6887d0bb06018b65a2b Mon Sep 17 00:00:00 2001 From: Meng Wang Date: Fri, 2 Sep 2016 09:24:43 +0800 Subject: [PATCH] ASoC: msm: qdsp6v2: check if index is out of range before use Index can be assigned as -EINVAL which could be out of array index. Check if index is valid value before use. CRs-Fixed: 1046606 Change-Id: Ib1af53ab52a65cca2ed9b3489359813e690b1cd6 Signed-off-by: Meng Wang --- sound/soc/msm/qdsp6v2/q6afe.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/sound/soc/msm/qdsp6v2/q6afe.c b/sound/soc/msm/qdsp6v2/q6afe.c index 16c7ef4c0bf5..26675daac404 100644 --- a/sound/soc/msm/qdsp6v2/q6afe.c +++ b/sound/soc/msm/qdsp6v2/q6afe.c @@ -5591,6 +5591,12 @@ int afe_get_sp_th_vi_ftm_data(struct afe_sp_th_vi_get_param *th_vi) goto done; } index = q6audio_get_port_index(port); + if (index < 0) { + pr_err("%s: invalid port 0x%x, index %d\n", + __func__, port, index); + ret = -EINVAL; + goto done; + } th_vi->hdr.hdr_field = APR_HDR_FIELD(APR_MSG_TYPE_SEQ_CMD, APR_HDR_LEN(APR_HDR_SIZE), APR_PKT_VER); th_vi->hdr.pkt_size = sizeof(*th_vi);