[pulseaudio-discuss] [PATCH] alsa: Don't try to use ELD controls with UCM
David Henningsson
david.henningsson at canonical.com
Mon Feb 9 02:28:33 PST 2015
Ack.
On 2015-02-06 23:15, Tanu Kaskinen wrote:
> This fixes a crash that occurred when trying to access non-existent
> port data. Doing this:
>
> pa_alsa_port_data *data = PA_DEVICE_PORT_DATA(port);
>
> is not a good idea when using UCM, because in the UCM mode ports don't
> have any data, so the data pointer points to some random memory.
> ---
> src/modules/alsa/module-alsa-card.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/src/modules/alsa/module-alsa-card.c b/src/modules/alsa/module-alsa-card.c
> index df04155..a7fec04 100644
> --- a/src/modules/alsa/module-alsa-card.c
> +++ b/src/modules/alsa/module-alsa-card.c
> @@ -455,6 +455,12 @@ static void init_eld_ctls(struct userdata *u) {
> if (!u->mixer_handle)
> return;
>
> + /* The code in this function expects ports to have a pa_alsa_port_data
> + * struct as their data, but in UCM mode ports don't have any data. Hence,
> + * the ELD controls can't currently be used in UCM mode. */
> + if (u->use_ucm)
> + return;
> +
> PA_HASHMAP_FOREACH(port, u->card->ports, state) {
> pa_alsa_port_data *data = PA_DEVICE_PORT_DATA(port);
> snd_mixer_elem_t* melem;
>
--
David Henningsson, Canonical Ltd.
https://launchpad.net/~diwic
More information about the pulseaudio-discuss
mailing list