alsa-ucm: disallow null mdev argument into pa_alsa_open_mixer_by_name()
authorEero Nurkkala <eero.nurkkala@offcode.fi>
Wed, 1 Jul 2020 08:20:33 +0000 (11:20 +0300)
committerTanu Kaskinen <tanuk@iki.fi>
Mon, 6 Jul 2020 09:47:19 +0000 (12:47 +0300)
It's possible for mdev to be NULL. In this case, an assert is taken
in pa_alsa_open_mixer_by_name() with debug builds, and a crash with
release builds. However, it's possible to bypass this trouble by taking
the error path if mdev is NULL.

Reported-by: Jarkko Sankala <jarkko.sankala@offcode.fi>
Signed-off-by: Eero Nurkkala <eero.nurkkala@offcode.fi>
src/modules/alsa/alsa-ucm.c

index 1dfb0e0..2952865 100644 (file)
@@ -942,7 +942,7 @@ static void probe_volumes(pa_hashmap *hash, bool is_sink, snd_pcm_t *pcm_handle,
             mdev = mdev2;
         }
 
-        if (!(mixer_handle = pa_alsa_open_mixer_by_name(mixers, mdev, true))) {
+        if (mdev == NULL || !(mixer_handle = pa_alsa_open_mixer_by_name(mixers, mdev, true))) {
             pa_log_error("Failed to find a working mixer device (%s).", mdev);
             goto fail;
         }