From 91f4e4d3c8d8501faa178c9ac89413196241f979 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Tue, 6 Jul 2021 17:54:08 +0200 Subject: [PATCH] alsa: catch and handle some more errors --- pipewire-alsa/alsa-plugins/ctl_pipewire.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/pipewire-alsa/alsa-plugins/ctl_pipewire.c b/pipewire-alsa/alsa-plugins/ctl_pipewire.c index ffaefe238..a5ef4bc0e 100644 --- a/pipewire-alsa/alsa-plugins/ctl_pipewire.c +++ b/pipewire-alsa/alsa-plugins/ctl_pipewire.c @@ -600,17 +600,19 @@ static int pipewire_write_integer(snd_ctl_ext_t * ext, snd_ctl_ext_key_t key, vol->values[i] = value[i]; if (key == 0) - set_volume_mute(ctl, ctl->default_source, vol, NULL); + err = set_volume_mute(ctl, ctl->default_source, vol, NULL); else - set_volume_mute(ctl, ctl->default_sink, vol, NULL); + err = set_volume_mute(ctl, ctl->default_sink, vol, NULL); } else { if (key == 1) - set_volume_mute(ctl, ctl->default_source, NULL, &ctl->source_muted); + err = set_volume_mute(ctl, ctl->default_source, NULL, &ctl->source_muted); else - set_volume_mute(ctl, ctl->default_sink, NULL, &ctl->sink_muted); + err = set_volume_mute(ctl, ctl->default_sink, NULL, &ctl->sink_muted); } + if (err < 0) + goto finish; - wait_resync(ctl); + err = wait_resync(ctl); if (err < 0) goto finish; @@ -1353,7 +1355,9 @@ SND_CTL_PLUGIN_DEFINE_FUNC(pipewire) &ctl->registry_listener, ®istry_events, ctl); - wait_resync(ctl); + err = wait_resync(ctl); + if (err < 0) + goto error_unlock; pw_thread_loop_unlock(ctl->mainloop);