[pulseaudio-commits] src/modules

Tanu Kaskinen tanuk at kemper.freedesktop.org
Thu Feb 12 05:08:01 PST 2015


 src/modules/alsa/module-alsa-card.c |    6 ++++++
 1 file changed, 6 insertions(+)

New commits:
commit 82ec47898e77dca94a7d73e976363f745081d828
Author: Tanu Kaskinen <tanu.kaskinen at linux.intel.com>
Date:   Sat Feb 7 00:15:34 2015 +0200

    alsa: Don't try to use ELD controls with UCM
    
    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.

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;



More information about the pulseaudio-commits mailing list