filter-apply: Fix segfault with moving streams
authorTanu Kaskinen <tanuk@iki.fi>
Thu, 14 Mar 2013 20:07:13 +0000 (22:07 +0200)
committerTanu Kaskinen <tanuk@iki.fi>
Fri, 22 Mar 2013 18:49:47 +0000 (20:49 +0200)
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

index 6826a0a..4e85ea1 100644 (file)
@@ -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 */