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 <vigneshk@codeaurora.org>
This commit is contained in:
Vignesh Kulothungan
2019-03-21 12:15:59 -07:00
parent eaa3444377
commit 9e17da0005

View File

@@ -2297,7 +2297,7 @@ static int cdc_dma_rx_ch_get(struct snd_kcontrol *kcontrol,
{ {
int ch_num = cdc_dma_get_port_idx(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); pr_err("%s: ch_num: %d is invalid\n", __func__, ch_num);
return 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); 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); pr_err("%s: ch_num: %d is invalid\n", __func__, ch_num);
return 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); 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); pr_err("%s: ch_num: %d is invalid\n", __func__, ch_num);
return ch_num; return ch_num;
} }
@@ -2363,7 +2363,7 @@ static int cdc_dma_rx_format_put(struct snd_kcontrol *kcontrol,
int rc = 0; int rc = 0;
int ch_num = cdc_dma_get_port_idx(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); pr_err("%s: ch_num: %d is invalid\n", __func__, ch_num);
return 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); 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); pr_err("%s: ch_num: %d is invalid\n", __func__, ch_num);
return 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); 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); pr_err("%s: ch_num: %d is invalid\n", __func__, ch_num);
return ch_num; return ch_num;
} }