On Tue, Oct 21, 2008, Loïc Minier wrote:
>  This is the list of changes I did:

 Hmm a simple rebuild of libvisual-plugins completely broke it in
 Ubuntu; didn't verify this in Debian, but in case it happens to you as
 well, please see attached fix.

-- 
Loïc Minier
--- Begin Message ---
        Hi there,

 We rebuilt libvisual-plugins in Ubuntu intrepid and it started
 crashing.

 I'm attaching our fix; I think it needs more in depth work to solve the
 root causes (writing to static memory of dlopened() plugins, writing in
 vars declared as const), but it might already help other users/distros,
 so I'd be grateful if you could consider merging this in
 libvisual-plugins.

   Thanks!
-- 
Loïc Minier
The static VisPluginInfo in nastyfft was declared as const, but libvisual write
to its refcount when it visual_object_unref()s it (nasty!).  This is broken at
various levels: libvisual shouldn't be writing to this static plugin which is
allocated by a dlopen()ed plugin, and it should also honor the "const
VisPluginInfo" API...  Anyway, nastyfft was the only occurrence and this fixes
the crash for now; LP: #287448.

--- libvisual-plugins-0.4.0.dfsg.1.orig/plugins/actor/nastyfft/actor_nastyfft.c
+++ libvisual-plugins-0.4.0.dfsg.1/plugins/actor/nastyfft/actor_nastyfft.c
@@ -80,7 +80,7 @@
 		.vidoptions.depth = VISUAL_VIDEO_DEPTH_GL
 	}};
 
-	static const VisPluginInfo info[] = {{
+	static VisPluginInfo info[] = {{
 		.type = VISUAL_PLUGIN_TYPE_ACTOR,
 
 		.plugname = N_("nastyfft"),

--- End Message ---

Reply via email to