diff mbox series

ALSA: ctl: fix error path at adding user-defined element set

Message ID 20201113092043.16148-1-o-takashi@sakamocchi.jp (mailing list archive)
State New, archived
Headers show
Series ALSA: ctl: fix error path at adding user-defined element set | expand

Commit Message

Takashi Sakamoto Nov. 13, 2020, 9:20 a.m. UTC
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>
---
 sound/core/control.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Takashi Iwai Nov. 13, 2020, 10:34 a.m. UTC | #1
On Fri, 13 Nov 2020 10:20:43 +0100,
Takashi Sakamoto wrote:
> 
> 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>

Thanks, applied now.


Takashi
diff mbox series

Patch

diff --git a/sound/core/control.c b/sound/core/control.c
index 421ddc7..f341fc4 100644
--- a/sound/core/control.c
+++ b/sound/core/control.c
@@ -1539,7 +1539,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,