mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-08 13:29:59 -05:00
filter-apply: Ignore monitor source of filter in find_paired_master()
When module-filter-apply tries to find a matching source-output for a given sink-input and a stream within the same group 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.
This commit is contained in:
parent
dfb0460fb4
commit
838d95dab7
1 changed files with 6 additions and 0 deletions
|
|
@ -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(g, group)) {
|
||||||
if (pa_streq(module_name, so->source->module->name)) {
|
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
|
/* Make sure we're not routing to another instance of
|
||||||
* the same filter. */
|
* the same filter. */
|
||||||
filter->source_master = so->source->output_from_master->source;
|
filter->source_master = so->source->output_from_master->source;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue