ALSA: vmaster: Return error for invalid input values
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
This commit is contained in:
parent
eb882afcfa
commit
10457f5042
@ -198,6 +198,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;
|
||||
@ -365,6 +371,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)
|
||||
|
Loading…
Reference in New Issue
Block a user