[alsa-devel] [PATCH 3/3] ALSA: core: set kcontrol's count field correctly
Lu Guanqun
guanqun.lu at intel.com
Wed Aug 24 05:12:43 CEST 2011
I don't see how info's owner field relates to kcontrol's count field. It should
assign to info's count instead.
Let's assume this scenario:
1. user reads the control element from kernel (the owner field is set)
2. user changes some values
3. user issues 'SNDRV_CTL_IOCTL_ELEM_REPLACE' ioctl.
With the original code, 'kctl' here gets a large count number due to its
non-empty owner field. Therefore it fails on subsequent call snd_ctl_new().
This patch fixes this issue.
Signed-off-by: Lu Guanqun <guanqun.lu at intel.com>
---
sound/core/control.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/sound/core/control.c b/sound/core/control.c
index 98b7fc7..30e1483 100644
--- a/sound/core/control.c
+++ b/sound/core/control.c
@@ -1099,7 +1099,7 @@ static int snd_ctl_elem_add(struct snd_ctl_file *file,
if (err < 0)
return err;
memcpy(&kctl.id, &info->id, sizeof(info->id));
- kctl.count = info->owner ? info->owner : 1;
+ kctl.count = info->count;
access |= SNDRV_CTL_ELEM_ACCESS_USER;
kctl.info = snd_ctl_elem_user_info;
if (access & SNDRV_CTL_ELEM_ACCESS_READ)
More information about the Alsa-devel
mailing list