]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ALSA: ctl: fix error path at adding user-defined element set
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Fri, 13 Nov 2020 09:20:43 +0000 (18:20 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 24 Nov 2020 11:48:12 +0000 (12:48 +0100)
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

index 2be860a446a2fc183a323838329d60d4040673c9..43c8eac250b8acff773b09d0c3164a3a9b996d3d 100644 (file)
@@ -1349,7 +1349,7 @@ static int snd_ctl_elem_add(struct snd_ctl_file *file,
 
  unlock:
        up_write(&card->controls_rwsem);
-       return 0;
+       return err;
 }
 
 static int snd_ctl_elem_add_user(struct snd_ctl_file *file,