ASoC: codecs: rx-macro: fix accessing compander for aux
authorSrinivas Kandagatla <srinivas.kandagatla@linaro.org>
Tue, 22 Feb 2022 18:32:04 +0000 (18:32 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 8 Apr 2022 12:23:17 +0000 (14:23 +0200)
[ Upstream commit 42c709c4e1ce4c136891530646c9abd5dff3524f ]

AUX interpolator does not have compander, so check before accessing
compander data for this.

Without this checkan array of out bounds access will be made in
comp_enabled[] array.

Fixes: 4f692926f562 ("ASoC: codecs: lpass-rx-macro: add dapm widgets and route")
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20220222183212.11580-2-srinivas.kandagatla@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
sound/soc/codecs/lpass-rx-macro.c

index 0f932ca61c816a546f3b00a4331d59bf3fa0fa83..fafb8265dbb395bc08de37216eab83b83fe874fb 100644 (file)
@@ -2039,6 +2039,10 @@ static int rx_macro_load_compander_coeff(struct snd_soc_component *component,
        int i;
        int hph_pwr_mode;
 
+       /* AUX does not have compander */
+       if (comp == INTERP_AUX)
+               return 0;
+
        if (!rx->comp_enabled[comp])
                return 0;