| From 95a793c3bc75cf888e0e641d656e7d080f487d8b Mon Sep 17 00:00:00 2001 |
| From: Takashi Sakamoto <o-takashi@sakamocchi.jp> |
| Date: Fri, 13 Nov 2020 18:20:43 +0900 |
| Subject: ALSA: ctl: fix error path at adding user-defined element set |
| |
| From: Takashi Sakamoto <o-takashi@sakamocchi.jp> |
| |
| commit 95a793c3bc75cf888e0e641d656e7d080f487d8b upstream. |
| |
| When processing request to add/replace user-defined element set, check |
| of given element identifier and decision of numeric identifier is done |
| in "__snd_ctl_add_replace()" helper function. When the result of check |
| is wrong, the helper function returns error code. The error code shall |
| be returned to userspace application. |
| |
| Current implementation includes bug to return zero to userspace application |
| regardless of the result. This commit fixes the bug. |
| |
| Cc: <stable@vger.kernel.org> |
| Fixes: e1a7bfe38079 ("ALSA: control: Fix race between adding and removing a user element") |
| Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp> |
| Link: https://lore.kernel.org/r/20201113092043.16148-1-o-takashi@sakamocchi.jp |
| Signed-off-by: Takashi Iwai <tiwai@suse.de> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| sound/core/control.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/sound/core/control.c |
| +++ b/sound/core/control.c |
| @@ -1388,7 +1388,7 @@ static int snd_ctl_elem_add(struct snd_c |
| |
| unlock: |
| up_write(&card->controls_rwsem); |
| - return 0; |
| + return err; |
| } |
| |
| static int snd_ctl_elem_add_user(struct snd_ctl_file *file, |