From 37bcf911fa351f0b1c526f8eb3708140e0b0a8f3 Mon Sep 17 00:00:00 2001 From: ftong Date: Mon, 19 Sep 2022 12:13:32 +0800 Subject: [PATCH] asoc: add return value check for channel mapping function Add return value check for channel mapping function, and reject invalid input Change-Id: If8ddc16b33bf2b6af10f9d6055d6de27d86ad240 Signed-off-by: ftong --- asoc/msm-pcm-loopback-v2.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/asoc/msm-pcm-loopback-v2.c b/asoc/msm-pcm-loopback-v2.c index 6094a8fca863..0746ffd0c349 100644 --- a/asoc/msm-pcm-loopback-v2.c +++ b/asoc/msm-pcm-loopback-v2.c @@ -964,8 +964,13 @@ static int msm_pcm_channel_mixer_cfg_ctl_put(struct snd_kcontrol *kcontrol, __func__, chmixer_pspd->input_channel); return -EINVAL; } - q6asm_map_channels(asm_ch_map, + ret = q6asm_map_channels(asm_ch_map, chmixer_pspd->input_channel, false); + if (ret < 0) { + pr_err("%s q6asm_map_channels failed\n", __func__); + return ret; + } + for (i = 0; i < PCM_FORMAT_MAX_NUM_CHANNEL_V8; i++) chmixer_pspd->in_ch_map[i] = asm_ch_map[i]; chmixer_pspd->override_in_ch_map = true; @@ -977,8 +982,12 @@ static int msm_pcm_channel_mixer_cfg_ctl_put(struct snd_kcontrol *kcontrol, __func__, chmixer_pspd->output_channel); return -EINVAL; } - q6asm_map_channels(asm_ch_map, + ret = q6asm_map_channels(asm_ch_map, chmixer_pspd->output_channel, false); + if (ret < 0) { + pr_err("%s q6asm_map_channels failed\n", __func__); + return ret; + } for (i = 0; i < PCM_FORMAT_MAX_NUM_CHANNEL_V8; i++) chmixer_pspd->out_ch_map[i] = asm_ch_map[i]; chmixer_pspd->override_out_ch_map = true;