[pulseaudio-discuss] [PATCH] equalizer: Don't cleanup u->sink in sink_input_kill_cb yet

Tanu Kaskinen tanuk at iki.fi
Tue Sep 25 10:45:03 PDT 2012


On Mon, 2012-09-24 at 14:40 +0200, Matthijs Kooijman wrote:
> 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).

Thanks! I applied the patch now.

I wonder if the other filter sinks should be changed too, and if also
u->sink_input unreffing should be left to pa__done(). It shouldn't hurt
to delay the unreffing until the module unload, and it would prevent/fix
other bugs that are caused by depending on some information stored in
pa_sink or pa_sink_input in the module unloading code.

-- 
Tanu



More information about the pulseaudio-discuss mailing list