ASoC: fsl_micfil: Enable default case in micfil_set_quality()
authorNikita Zhandarovich <n.zhandarovich@fintech.ru>
Thu, 16 Jan 2025 14:24:36 +0000 (06:24 -0800)
committerMark Brown <broonie@kernel.org>
Mon, 3 Feb 2025 00:34:17 +0000 (00:34 +0000)
If 'micfil->quality' received from micfil_quality_set() somehow ends
up with an unpredictable value, switch() operator will fail to
initialize local variable qsel before regmap_update_bits() tries
to utilize it.

While it is unlikely, play it safe and enable a default case that
returns -EINVAL error.

Found by Linux Verification Center (linuxtesting.org) with static
analysis tool SVACE.

Fixes: bea1d61d5892 ("ASoC: fsl_micfil: rework quality setting")
Cc: stable@vger.kernel.org
Signed-off-by: Nikita Zhandarovich <n.zhandarovich@fintech.ru>
Link: https://patch.msgid.link/20250116142436.22389-1-n.zhandarovich@fintech.ru
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/fsl/fsl_micfil.c

index 1075598a6647b1728c9834629b823dab5ec6e31e..fa41366833920ddf529c13df81603e1043802dcb 100644 (file)
@@ -183,6 +183,8 @@ static int micfil_set_quality(struct fsl_micfil *micfil)
        case QUALITY_VLOW2:
                qsel = MICFIL_QSEL_VLOW2_QUALITY;
                break;
+       default:
+               return -EINVAL;
        }
 
        return regmap_update_bits(micfil->regmap, REG_MICFIL_CTRL2,