From 2a7226d89331f7d5d0abf0b9aff6d75435dd3a2d Mon Sep 17 00:00:00 2001 From: Kevin Velghe Date: Fri, 22 Nov 2019 09:53:21 +0100 Subject: [PATCH] Fix segfault on pulseaudio tunnel sinks --- src/pulseaudio.cc | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/pulseaudio.cc b/src/pulseaudio.cc index b7e4c028..acf45719 100644 --- a/src/pulseaudio.cc +++ b/src/pulseaudio.cc @@ -62,8 +62,13 @@ void pa_sink_info_callback(pa_context *c, const pa_sink_info *i, int eol, pdr->sink_mute = i->mute; pdr->sink_card = i->card; pdr->sink_index = i->index; - pdr->sink_active_port_name.assign(i->active_port->name); - pdr->sink_active_port_description.assign(i->active_port->description); + if (i->active_port != nullptr) { + pdr->sink_active_port_name.assign(i->active_port->name); + pdr->sink_active_port_description.assign(i->active_port->description); + } else { + pdr->sink_active_port_name.erase(); + pdr->sink_active_port_description.erase(); + } pdr->sink_volume = round_to_positive_int( 100.0f * (float)pa_cvolume_avg(&(i->volume)) / (float)PA_VOLUME_NORM); pa_threaded_mainloop_signal(pulseaudio->mainloop, 0);