alsa-ucm: Fix NULL pointer handling
authorTanu Kaskinen <tanuk@iki.fi>
Mon, 6 Jul 2020 09:39:42 +0000 (12:39 +0300)
committerTanu Kaskinen <tanuk@iki.fi>
Mon, 6 Jul 2020 09:47:19 +0000 (12:47 +0300)
get_mixer_device() can return NULL when no mixer device is configured
for the device, so mdev2 can be NULL.

src/modules/alsa/alsa-ucm.c

index 2952865..c32d3c1 100644 (file)
@@ -935,11 +935,12 @@ static void probe_volumes(pa_hashmap *hash, bool is_sink, snd_pcm_t *pcm_handle,
         mdev = NULL;
         PA_DYNARRAY_FOREACH(dev, data->devices, idx) {
             mdev2 = get_mixer_device(dev, is_sink);
-            if (mdev && !pa_streq(mdev, mdev2)) {
+            if (mdev && mdev2 && !pa_streq(mdev, mdev2)) {
                 pa_log_error("Two mixer device names found ('%s', '%s'), using s/w volume", mdev, mdev2);
                 goto fail;
             }
-            mdev = mdev2;
+            if (mdev2)
+                mdev = mdev2;
         }
 
         if (mdev == NULL || !(mixer_handle = pa_alsa_open_mixer_by_name(mixers, mdev, true))) {