summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Brown <broonie@kernel.org>2022-05-11 14:41:36 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2022-12-08 11:16:33 +0100
commit4a95a49f26308782b4056401989ecd7768fda8fa (patch)
tree3ac3a0809012d22b075c0635a01f5a20c9f255af
parent4ddc92bfada05ad440692fea6ab8b80c3d97cfcd (diff)
downloadlinux-stable-4a95a49f26308782b4056401989ecd7768fda8fa.tar.gz
linux-stable-4a95a49f26308782b4056401989ecd7768fda8fa.tar.bz2
linux-stable-4a95a49f26308782b4056401989ecd7768fda8fa.zip
ASoC: ops: Fix bounds check for _sx controls
[ Upstream commit 698813ba8c580efb356ace8dbf55f61dac6063a8 ] For _sx controls the semantics of the max field is not the usual one, max is the number of steps rather than the maximum value. This means that our check in snd_soc_put_volsw_sx() needs to just check against the maximum value. Fixes: 4f1e50d6a9cf9c1b ("ASoC: ops: Reject out of bounds values in snd_soc_put_volsw_sx()") Signed-off-by: Mark Brown <broonie@kernel.org> Link: https://lore.kernel.org/r/20220511134137.169575-1-broonie@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
-rw-r--r--sound/soc/soc-ops.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sound/soc/soc-ops.c b/sound/soc/soc-ops.c
index 81c9ecfa7c7f..b734bf911470 100644
--- a/sound/soc/soc-ops.c
+++ b/sound/soc/soc-ops.c
@@ -450,7 +450,7 @@ int snd_soc_put_volsw_sx(struct snd_kcontrol *kcontrol,
val = ucontrol->value.integer.value[0];
if (mc->platform_max && val > mc->platform_max)
return -EINVAL;
- if (val > max - min)
+ if (val > max)
return -EINVAL;
if (val < 0)
return -EINVAL;