* [PATCH AUTOSEL 5.10 26/38] ALSA: vmaster: Return error for invalid input values
[not found] <20240801003643.3938534-1-sashal@kernel.org>
@ 2024-08-01 0:35 ` Sasha Levin
2024-08-27 12:26 ` Pavel Machek
0 siblings, 1 reply; 2+ messages in thread
From: Sasha Levin @ 2024-08-01 0:35 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Takashi Iwai, Paul Menzel, Jaroslav Kysela, Sasha Levin, tiwai,
linux-sound
From: Takashi Iwai <tiwai@suse.de>
[ Upstream commit 10457f5042b4890a667e2f15a2e783490dda44d2 ]
So far the vmaster code has been tolerant about the input values and
accepts any values by correcting internally. But now our own selftest
starts complaining about this behavior, so let's be picky and change
the behavior to return -EINVAL for invalid input values instead.
Reported-by: Paul Menzel <pmenzel@molgen.mpg.de>
Closes: https://lore.kernel.org/r/1d44be36-9bb9-4d82-8953-5ae2a4f09405@molgen.mpg.de
Reviewed-by: Jaroslav Kysela <perex@perex.cz>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://lore.kernel.org/20240616073454.16512-2-tiwai@suse.de
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
sound/core/vmaster.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/sound/core/vmaster.c b/sound/core/vmaster.c
index ab36f9898711a..24d6f2325605c 100644
--- a/sound/core/vmaster.c
+++ b/sound/core/vmaster.c
@@ -204,6 +204,12 @@ static int follower_put(struct snd_kcontrol *kcontrol,
err = follower_init(follower);
if (err < 0)
return err;
+ for (ch = 0; ch < follower->info.count; ch++) {
+ if (ucontrol->value.integer.value[ch] < follower->info.min_val ||
+ ucontrol->value.integer.value[ch] > follower->info.max_val)
+ return -EINVAL;
+ }
+
for (ch = 0; ch < follower->info.count; ch++) {
if (follower->vals[ch] != ucontrol->value.integer.value[ch]) {
changed = 1;
@@ -344,6 +350,8 @@ static int master_put(struct snd_kcontrol *kcontrol,
new_val = ucontrol->value.integer.value[0];
if (new_val == old_val)
return 0;
+ if (new_val < master->info.min_val || new_val > master->info.max_val)
+ return -EINVAL;
err = sync_followers(master, old_val, new_val);
if (err < 0)
--
2.43.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH AUTOSEL 5.10 26/38] ALSA: vmaster: Return error for invalid input values
2024-08-01 0:35 ` [PATCH AUTOSEL 5.10 26/38] ALSA: vmaster: Return error for invalid input values Sasha Levin
@ 2024-08-27 12:26 ` Pavel Machek
0 siblings, 0 replies; 2+ messages in thread
From: Pavel Machek @ 2024-08-27 12:26 UTC (permalink / raw)
To: Sasha Levin
Cc: linux-kernel, stable, Takashi Iwai, Paul Menzel, Jaroslav Kysela,
tiwai, linux-sound
[-- Attachment #1: Type: text/plain, Size: 1531 bytes --]
Hi!
> From: Takashi Iwai <tiwai@suse.de>
>
> [ Upstream commit 10457f5042b4890a667e2f15a2e783490dda44d2 ]
>
> So far the vmaster code has been tolerant about the input values and
> accepts any values by correcting internally. But now our own selftest
> starts complaining about this behavior, so let's be picky and change
> the behavior to return -EINVAL for invalid input values instead.
Does it fix a bug serious enough for -stable?
Best regards,
Pavel
> +++ b/sound/core/vmaster.c
> @@ -204,6 +204,12 @@ static int follower_put(struct snd_kcontrol *kcontrol,
> err = follower_init(follower);
> if (err < 0)
> return err;
> + for (ch = 0; ch < follower->info.count; ch++) {
> + if (ucontrol->value.integer.value[ch] < follower->info.min_val ||
> + ucontrol->value.integer.value[ch] > follower->info.max_val)
> + return -EINVAL;
> + }
> +
> for (ch = 0; ch < follower->info.count; ch++) {
> if (follower->vals[ch] != ucontrol->value.integer.value[ch]) {
> changed = 1;
> @@ -344,6 +350,8 @@ static int master_put(struct snd_kcontrol *kcontrol,
> new_val = ucontrol->value.integer.value[0];
> if (new_val == old_val)
> return 0;
> + if (new_val < master->info.min_val || new_val > master->info.max_val)
> + return -EINVAL;
>
> err = sync_followers(master, old_val, new_val);
> if (err < 0)
--
DENX Software Engineering GmbH, Managing Director: Erika Unter
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2024-08-27 12:26 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20240801003643.3938534-1-sashal@kernel.org>
2024-08-01 0:35 ` [PATCH AUTOSEL 5.10 26/38] ALSA: vmaster: Return error for invalid input values Sasha Levin
2024-08-27 12:26 ` Pavel Machek
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).