alsa-ucm: Fix NULL pointer handling

get_mixer_device() can return NULL when no mixer device is configured
for the device, so mdev2 can be NULL.
This commit is contained in:
Tanu Kaskinen 2020-07-06 12:39:42 +03:00
parent 0b5ab6be5a
commit f12795330b

View file

@ -935,11 +935,12 @@ static void probe_volumes(pa_hashmap *hash, bool is_sink, snd_pcm_t *pcm_handle,
mdev = NULL; mdev = NULL;
PA_DYNARRAY_FOREACH(dev, data->devices, idx) { PA_DYNARRAY_FOREACH(dev, data->devices, idx) {
mdev2 = get_mixer_device(dev, is_sink); 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); pa_log_error("Two mixer device names found ('%s', '%s'), using s/w volume", mdev, mdev2);
goto fail; goto fail;
} }
mdev = mdev2; if (mdev2)
mdev = mdev2;
} }
if (mdev == NULL || !(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))) {