gstreamer gdk-pixbuf plugin



I was just debugging some nautilus issue when nautilus started crashing
when reading a directory with some avi files in it. Apparently there is
now a gdk-pixbuf loader in gstreamer, and it was crashing trying to load
some 700 meg avi. 

There are a few issues with this:

a) gdk-pixbuf loaders are very heavily audited to be as safe as
possible, since apps use gdk-pixbuf on hostile sources. I don't consider
gstreamer to be reliable like that. (This crash is probably an instant
evo exploit for instance.)

b) Nautilus (really libgnomeui) lists the supported types from
gdk-pixbuf using an API call, so it knows which types to thumbnail using
the internal gdk-pixbuf thumbnailer. With the gstreamer plugin this will
try to load all sorts of movies and shit, overriding the plugin system
for thumbnailers, making nautilus unstable (the thumbnail plugins are
normally run as separate processes) and less featureful (the video
thumbnailer plugins are a lot smarter than just loading the file).

c) It looked like the plugin was trying to load the animation into a
GdkPixbufAnimation object. This is not really a good way to handle a 700
meg movie. It is mostly for handling animated GIFs and MNGs. I'm not
sure what the code actually does, and if it reads the whole file, but it
seems to at least do some strange linux-only things like 
gchar *filename = g_strdup_printf ("/proc/self/fd/%d",
iter->ani->temp_fd);

I'm not sure what to do about this. Maybe we should just go back to
hardcoding the list of mimetypes in gnome-thumbnail, to avoid this and
similar issues in the future.

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 Alexander Larsson                                            Red Hat, Inc 
                   alexl redhat com    alla lysator liu se 
He's a suicidal ninja sorceror on the hunt for the last specimen of a great 
and near-mythical creature. She's a warm-hearted gypsy college professor with 
her own daytime radio talk show. They fight crime! 




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]