[pulseaudio-discuss] [PATCH] filter-apply: Ignore monitor source of filter in find_paired_master()
Georg Chini
georg at chini.tk
Tue Feb 6 19:26:17 UTC 2018
When module-filter-apply tries to find a matching source-output for
a given sink-input and a stream with the same role exists on the
monitor source of the filter, module-filter apply falsely assumes
that the source belongs to another instance of the filter and tries
to access source->output_from_master->source, which leads to a
segmentation fault.
This patch fixes the issue by ignoring the stream if the source is
the monitor source of the filter.
Bug link: https://bugs.freedesktop.org/show_bug.cgi?id=104958
---
src/modules/module-filter-apply.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/modules/module-filter-apply.c b/src/modules/module-filter-apply.c
index 783d85ed..163d52a2 100644
--- a/src/modules/module-filter-apply.c
+++ b/src/modules/module-filter-apply.c
@@ -259,6 +259,12 @@ static bool find_paired_master(struct userdata *u, struct filter *filter, pa_obj
if (pa_streq(g, group)) {
if (pa_streq(module_name, so->source->module->name)) {
+ /* Make sure we are not routing to the monitor source
+ * of the same filter */
+ if (so->source->monitor_of) {
+ pa_xfree(g);
+ continue;
+ }
/* Make sure we're not routing to another instance of
* the same filter. */
filter->source_master = so->source->output_from_master->source;
--
2.14.1
More information about the pulseaudio-discuss
mailing list