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 ---