From 9e17da0005cf7c40e224dd4dd7de83e238c23d6f Mon Sep 17 00:00:00 2001 From: Vignesh Kulothungan Date: Thu, 21 Mar 2019 12:15:59 -0700 Subject: [PATCH] asoc: validate channel number before use Validate channel number before using it to index codec dma rx configuation array. CRs-Fixed: 2420338 Change-Id: I48109beedba2423158fa84dee0b9ccac340979b1 Signed-off-by: Vignesh Kulothungan --- asoc/kona.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/asoc/kona.c b/asoc/kona.c index fd5c9a71250b..704951ccebf3 100644 --- a/asoc/kona.c +++ b/asoc/kona.c @@ -2297,7 +2297,7 @@ static int cdc_dma_rx_ch_get(struct snd_kcontrol *kcontrol, { int ch_num = cdc_dma_get_port_idx(kcontrol); - if (ch_num < 0) { + if (ch_num < 0 || ch_num >= CDC_DMA_RX_MAX) { pr_err("%s: ch_num: %d is invalid\n", __func__, ch_num); return ch_num; } @@ -2313,7 +2313,7 @@ static int cdc_dma_rx_ch_put(struct snd_kcontrol *kcontrol, { int ch_num = cdc_dma_get_port_idx(kcontrol); - if (ch_num < 0) { + if (ch_num < 0 || ch_num >= CDC_DMA_RX_MAX) { pr_err("%s: ch_num: %d is invalid\n", __func__, ch_num); return ch_num; } @@ -2330,7 +2330,7 @@ static int cdc_dma_rx_format_get(struct snd_kcontrol *kcontrol, { int ch_num = cdc_dma_get_port_idx(kcontrol); - if (ch_num < 0) { + if (ch_num < 0 || ch_num >= CDC_DMA_RX_MAX) { pr_err("%s: ch_num: %d is invalid\n", __func__, ch_num); return ch_num; } @@ -2363,7 +2363,7 @@ static int cdc_dma_rx_format_put(struct snd_kcontrol *kcontrol, int rc = 0; int ch_num = cdc_dma_get_port_idx(kcontrol); - if (ch_num < 0) { + if (ch_num < 0 || ch_num >= CDC_DMA_RX_MAX) { pr_err("%s: ch_num: %d is invalid\n", __func__, ch_num); return ch_num; } @@ -2498,7 +2498,7 @@ static int cdc_dma_rx_sample_rate_get(struct snd_kcontrol *kcontrol, { int ch_num = cdc_dma_get_port_idx(kcontrol); - if (ch_num < 0) { + if (ch_num < 0 || ch_num >= CDC_DMA_RX_MAX) { pr_err("%s: ch_num: %d is invalid\n", __func__, ch_num); return ch_num; } @@ -2516,7 +2516,7 @@ static int cdc_dma_rx_sample_rate_put(struct snd_kcontrol *kcontrol, { int ch_num = cdc_dma_get_port_idx(kcontrol); - if (ch_num < 0) { + if (ch_num < 0 || ch_num >= CDC_DMA_RX_MAX) { pr_err("%s: ch_num: %d is invalid\n", __func__, ch_num); return ch_num; }