[pulseaudio-discuss] [PATCH 2/4] filter-apply: Fix segfault with moving streams

Tanu Kaskinen tanuk at iki.fi
Thu Mar 14 13:07:13 PDT 2013


process() may be called with a stream that doesn't have its sink/source set.
This can happen if the proplist change callback is called when the stream is
moving.
---
 src/modules/module-filter-apply.c |   10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/src/modules/module-filter-apply.c b/src/modules/module-filter-apply.c
index 6826a0a..4e85ea1 100644
--- a/src/modules/module-filter-apply.c
+++ b/src/modules/module-filter-apply.c
@@ -417,14 +417,18 @@ static pa_hook_result_t process(struct userdata *u, pa_object *o, pa_bool_t is_s
     pa_bool_t done_something = FALSE;
     pa_sink *sink = NULL;
     pa_source *source = NULL;
-    pa_module *module;
+    pa_module *module = NULL;
 
     if (is_sink_input) {
         sink = PA_SINK_INPUT(o)->sink;
-        module = sink->module;
+
+        if (sink)
+            module = sink->module;
     } else {
         source = PA_SOURCE_OUTPUT(o)->source;
-        module = source->module;
+
+        if (source)
+            module = source->module;
     }
 
     /* If there is no sink/source yet, we can't do much */
-- 
1.7.10.4



More information about the pulseaudio-discuss mailing list