Description of problem: When using cross-compiled Midori with gdk-pixbuf compiled with gdi+ loaders, it crashes when trying to fetch icons from some pages. Version-Release number of selected component (if applicable): mingw32-gdk-pixbuf-2.25.2 How reproducible: 100% reproducible. Steps to Reproduce: 1. Run cross-compiled Midori 2. go to page http://alex-butenko.livejournal.com 3. Midori crashes. Actual results: Midori crashes. Expected results: Normal behavior. Additional info: Backtrace of a crash GLib-GObject-WARNING **: cannot register existing type `GdkPixbufGdipAnim' GLib-CRITICAL **: g_once_init_leave: assertion `result != 0' failed GLib-GObject-CRITICAL **: g_object_new: assertion `G_TYPE_IS_OBJECT (object_type )' failed Program received signal SIGSEGV, Segmentation fault. 0x66c02146 in stop_load (bitmap=0x46e39a8, context=0x4238ed8, error=0x0) at ../../gdk-pixbuf/io-gdip-utils.c:695 695 ../../gdk-pixbuf/io-gdip-utils.c: No such file or directory. in ../../gdk-pixbuf/io-gdip-utils.c (gdb) bt #0 0x66c02146 in stop_load (bitmap=0x46e39a8, context=0x4238ed8, error=0x0) at ../../gdk-pixbuf/io-gdip-utils.c:695 #1 0x66c02646 in gdk_pixbuf__gdip_image_stop_load (data=0x4238ed8, error=0x0) at ../../gdk-pixbuf/io-gdip-utils.c:756 #2 0x003d5805 in _gdk_pixbuf_generic_image_load (module=0x2de4218, f=0x77c4fd80, error=0x0) at ../../gdk-pixbuf/gdk-pixbuf-io.c:1025 #3 0x003d59f9 in gdk_pixbuf_new_from_file_utf8 ( filename=0x69f1948 "C:\\Documents and Settings\\pawel\\Ustawienia lokalne\\T emporary Internet Files\\midori\\icons\\0a467b10b25769bd45d7a24d5ff848f0.10", er ror=0x0) at ../../gdk-pixbuf/gdk-pixbuf-io.c:1116 #4 0x0044a995 in _midori_web_view_load_icon (view=0x41e35b0) at ../midori/midori-view.c:855 #5 0x0044c290 in midori_web_view_notify_icon_uri_cb (web_view=0x41e4370, pspec=0x41b4610, view=0x41e35b0) at ../midori/midori-view.c:1522 #6 0x63a45ec6 in ?? () from F:\mingw\bin\libgobject-2.0-0.dll #7 0x63a47c10 in ?? () from F:\mingw\bin\libgobject-2.0-0.dll Cannot access memory at address 0x40000006
The favicon it is loading is an animated gif and the GDI+ gif loader code is failing to register the gobject. This appears to be a regression from http://git.gnome.org/browse/gdk-pixbuf/commit/?id=f592afe9 that converted the animation implementations to use G_DEFINE_TYPE. The loadable gdk-pixbuf GDI+ modules share common code in io-ani-animation.c, but are each compiled into different DLL files. This means that each of these DLL files that are loaded in the same process try to register the same gobject type, GdkPixbufAniAnim. The pre-G_DEFINE_TYPE code get_type() implementation had a manual check to make sure some other loadable DLL hasn't already registered this type: object_type = g_type_from_name ("GdkPixbufGdipAnim"); if (object_type == 0) { object_type = g_type_register... The new code generated by G_DEFINE_TYPE uses a static variable to guard for multiple registrations, but this isn't working if some other loadable DLL has already registered the type, because the static variable is different for each of the DLL files. Fixing it upstream would probably involve either moving back to hand-crafted get_type() or splitting io-ani-animation.c into a separate DLL. As a downstream, I guess we could compile all the GDI+ loaders into the main gdk-pixbuf DLL, which should fix the static variable problem. Another way to fix it would be to just stop using the GDI+ loaders.
mingw32-gdk-pixbuf-2.25.2-2.fc17 has been submitted as an update for Fedora 17. https://admin.fedoraproject.org/updates/mingw32-gdk-pixbuf-2.25.2-2.fc17
Package mingw32-gdk-pixbuf-2.25.2-2.fc17: * should fix your issue, * was pushed to the Fedora 17 testing repository, * should be available at your local mirror within two days. Update it with: # su -c 'yum update --enablerepo=updates-testing mingw32-gdk-pixbuf-2.25.2-2.fc17' as soon as you are able to. Please go to the following url: https://admin.fedoraproject.org/updates/FEDORA-2012-2032/mingw32-gdk-pixbuf-2.25.2-2.fc17 then log in and leave karma (feedback).
mingw32-gdk-pixbuf-2.25.2-2.fc17 has been pushed to the Fedora 17 stable repository. If problems still persist, please make note of it in this bug report.