[pulseaudio-commits] src/modules

Tanu Kaskinen tanuk at kemper.freedesktop.org
Tue Sep 25 10:39:44 PDT 2012


 src/modules/module-equalizer-sink.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

New commits:
commit 3d2d30f68802a76b09e9c90ffa2f2960bdde76e0
Author: Matthijs Kooijman <matthijs at stdin.nl>
Date:   Mon Sep 24 14:40:06 2012 +0200

    equalizer: Don't cleanup u->sink in sink_input_kill_cb yet
    
    Previously, sink_input_kill_cb would cleanup u->sink an then unload the
    module. However, during module unload, both save_state and dbus_done
    tried to use u->sink, causing a segfault or assertion failure.
    
    The segfault is easy to reproduce: Load module-equalizer-sink and then
    press ctrl-C to terminate pulseaudio.
    
    This commit removes the u->sink cleanup in sink_input_kill_cb, since
    u->sink will be cleaned up by the module's pa__done as well (after it
    has been used).
    
    Signed-off-by: Matthijs Kooijman <matthijs at stdin.nl>

diff --git a/src/modules/module-equalizer-sink.c b/src/modules/module-equalizer-sink.c
index 8b9075c..2698279 100644
--- a/src/modules/module-equalizer-sink.c
+++ b/src/modules/module-equalizer-sink.c
@@ -849,8 +849,8 @@ static void sink_input_kill_cb(pa_sink_input *i) {
     pa_sink_input_unref(u->sink_input);
     u->sink_input = NULL;
 
-    pa_sink_unref(u->sink);
-    u->sink = NULL;
+    /* Leave u->sink alone for now, it will be cleaned up on module
+     * unload (and it is needed during unload as well). */
 
     pa_module_unload_request(u->module, TRUE);
 }



More information about the pulseaudio-commits mailing list