GNOME Bugzilla – Bug 100061
gdk-pixbuf has trouble on these images: nautilus hangs as a result
Last modified: 2010-07-10 04:05:33 UTC
Here are two URLs which I could not view properly in Mozilla. I got a message about "The image cannot be displayed, because it contains errors". I downloaded them and looked with the gimp (which worked) and then forgot I had them. When viewing a pictures directory with nautilus, it hung repeatedly and reproducibly. Narrowed it down to these two pictures. Tried various image-viewing programs. They open in "display" (from imagemagick) and the gimp. With eog, Image 1 renders wrongly. Image 2 just won't open. With nautilus, image 1 is partially rendered as a thumbnail and I get a "not finished" sort of icon for image 2. Running nautilus from the command line, I get an Xlib error with the nautilus hang: Xlib: unexpected async reply (sequence 0x2b97)! The common theme seems to be gdk-pixbuf. It appears reasonably reproducible: everyone on #gnome succumbed except owen, who had a gdk-pixbuf from HEAD (as of this date). http://homepage1.nifty.com/kotatsu-neko/linuxchix/linuxidea1.jpg http://homepage1.nifty.com/kotatsu-neko/linuxchix/linuxidea2.jpg System is a RH 8.0 box with Gnome from that rather than a more recent garnome/jhbuild/etc version. $ rpm -q gtk2 nautilus eog libjpeg gtk2-2.0.6-8 nautilus-2.0.6-6 eog-1.0.2-3 libjpeg-6b-21 (I include libjpeg just for completeness: owen's was older.) I have seen (or, rather, haven't :)) similar images which get this message with mozilla elsewhere on the web. If I meet them again, I shall see whether they too upset gdk-pixbuf.
With the current io-jpeg.c from either HEAD or GTK+-2.0, no problems. If I back io-jpeg.c up to the GTK+-2.0.6 version, then I reproduce the problems. So, it appears to have been fixed by: 2002-09-25 Federico Mena Quintero <federico@ximian.com> * io-jpeg.c: Merged the CMYK changes from HEAD. Which refers to: 2002-07-02 Matthias Clasen <maclas@gmx.de> Better colorspace support for the jpeg loader (#61211): * io-jpeg.c (convert_cmyk_to_rgb): New function. (gdk_pixbuf__jpeg_image_load, gdk_pixbuf__jpeg_image_load_increment): Allocate a pixbuf with alpha for 4-channel jpegs and call convert_cmyk_to_rgb for these. With the GTK+-2.0.6 gdk-pixbuf, the crash is in a libjpeg function having to do with CMYK, which is why I'm guessing it is this particular image. You probably should file a mozilla bug ifyou haven't already. *** This bug has been marked as a duplicate of 61211 ***