ASoC: codecs: wsa-macro: fix uninitialized stack variables with name prefix
authorKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Tue, 3 Oct 2023 15:54:22 +0000 (17:54 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 28 Nov 2023 17:20:04 +0000 (17:20 +0000)
commit 72151ad0cba8a07df90130ff62c979520d71f23b upstream.

Driver compares widget name in wsa_macro_spk_boost_event() widget event
callback, however it does not handle component's name prefix.  This
leads to using uninitialized stack variables as registers and register
values.  Handle gracefully such case.

Fixes: 2c4066e5d428 ("ASoC: codecs: lpass-wsa-macro: add dapm widgets and route")
Cc: stable@vger.kernel.org
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20231003155422.801160-1-krzysztof.kozlowski@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
sound/soc/codecs/lpass-wsa-macro.c

index fff4a8b..7e21cec 100644 (file)
@@ -1685,6 +1685,9 @@ static int wsa_macro_spk_boost_event(struct snd_soc_dapm_widget *w,
                boost_path_cfg1 = CDC_WSA_RX1_RX_PATH_CFG1;
                reg = CDC_WSA_RX1_RX_PATH_CTL;
                reg_mix = CDC_WSA_RX1_RX_PATH_MIX_CTL;
+       } else {
+               dev_warn(component->dev, "Incorrect widget name in the driver\n");
+               return -EINVAL;
        }
 
        switch (event) {