ASoC: ops: Fix bounds check for _sx controls
[ Upstream commit698813ba8c
] 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:4f1e50d6a9
("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>
This commit is contained in:
Родитель
f88a6977f8
Коммит
98b15c7066
|
@ -433,7 +433,7 @@ int snd_soc_put_volsw_sx(struct snd_kcontrol *kcontrol,
|
||||||
val = ucontrol->value.integer.value[0];
|
val = ucontrol->value.integer.value[0];
|
||||||
if (mc->platform_max && val > mc->platform_max)
|
if (mc->platform_max && val > mc->platform_max)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
if (val > max - min)
|
if (val > max)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
if (val < 0)
|
if (val < 0)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче