[alsa-devel] [PATCH 1/4] ALSA: ctl: confirm to return all identical information
Takashi Iwai
tiwai at suse.de
Thu Apr 9 07:36:43 CEST 2015
At Thu, 9 Apr 2015 02:07:15 +0900,
Takashi Sakamoto wrote:
>
> When event originator doesn't set numerical ID in identical information,
> the event data includes no numerical ID, thus userspace applications
> cannot identify the control just by unique ID in event data.
>
> This commit fix this bug so as the event data includes all of identical
> information.
>
> Signed-off-by: Takashi Sakamoto <o-takashi at sakamocchi.jp>
> ---
> sound/core/control.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/sound/core/control.c b/sound/core/control.c
> index d677c27..6d12e85 100644
> --- a/sound/core/control.c
> +++ b/sound/core/control.c
> @@ -578,6 +578,7 @@ error:
> *
> * Finds the control instance with the given id, and activate or
> * inactivate the control together with notification, if changed.
> + * The given ID data is filled by full information.
> *
> * Return: 0 if unchanged, 1 if changed, or a negative error code on failure.
> */
> @@ -609,6 +610,7 @@ int snd_ctl_activate_id(struct snd_card *card, struct snd_ctl_elem_id *id,
> }
> ret = 1;
> unlock:
> + *id = kctl->id;
This isn't always correct. When the element is looked by a numid and
a kctl has multiple items (count > 0), this will overwrite with a
wrong numid.
Takashi
> up_write(&card->controls_rwsem);
> if (ret > 0)
> snd_ctl_notify(card, SNDRV_CTL_EVENT_MASK_INFO, id);
> --
> 2.1.0
>
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel at alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
>
More information about the Alsa-devel
mailing list