GNOME Bugzilla – Bug 561281
Incomplete disposal of Banshee.GStreamer.PlayerEngine
Last modified: 2009-04-28 17:57:07 UTC
Please describe the problem: During disposal of Banshee.GStreamer.PlayerEngine, the class does not set its handle to reference a null IntPtr. This causes later calls to unmanaged code to use a freed pointer, which may occur if the PlayerEngine class is used by an extension that is unloaded after the PlayerEngine is disposed. Steps to reproduce: The reproduction of this problem ties closely into how the visualization pipeline is managed, and no simple case is available. See bug #555834 for an example of how this could be a problem. Actual results: Expected results: Does this happen every time? Other information:
Created attachment 122884 [details] [review] Fix Sets the handle to reference a null IntPtr after disposal.
Also, am I the only one who doesn't think this is the appropriate place to be using a HandleRef? Perhaps a SafeHandle, but HandleRef is doing exactly nothing in this context.
I don't know about handles and stuff, but the patch fixes my crash on exit with the visualization extension.
The fix was committed to the stable-vis branch, as part of the patch in bug #555834.