Package: libgtk2.0-0 Version: 2.12.0-2 Severity: important Tags: patch --- Please enter the report below this line. --- Epiphany crash after closing tab because of one missing check in libgtk2.0-0
Gtk-CRITICAL **: gtk_window_group_remove_window: assertion `GTK_IS_WINDOW_GROUP (window_group)' failed aborting... Program received signal SIGABRT, Aborted. [Switching to Thread 0xb5e736c0 (LWP 25278)] 0xb7f4d410 in __kernel_vsyscall () (gdb) Display all 145 possibilities? (y or n) (gdb) bt #0 0xb7f4d410 in __kernel_vsyscall () #1 0xb6f047f5 in raise () from /lib/i686/cmov/libc.so.6 #2 0xb6f06181 in abort () from /lib/i686/cmov/libc.so.6 #3 0xb7065e99 in IA__g_logv (log_domain=0xb794aa57 "Gtk", log_level=G_LOG_LEVEL_CRITICAL, format=0xb7096875 "%s: assertion `%s' failed", args1=0xbfb1173c "D\235���\223��\020\"��") at /tmp/buildd/glib2.0-2.14.1/glib/gmessages.c:497 #4 0xb7065ec9 in IA__g_log (log_domain=0xb794aa57 "Gtk", log_level=G_LOG_LEVEL_CRITICAL, format=0xb7096875 "%s: assertion `%s' failed") at /tmp/buildd/glib2.0-2.14.1/glib/gmessages.c:517 #5 0xb7065fab in IA__g_return_if_fail_warning (log_domain=0xb794aa57 "Gtk", pretty_function=0xb7a09d44 "gtk_window_group_remove_window", expression=0xb7a093fc "GTK_IS_WINDOW_GROUP (window_group)") at /tmp/buildd/glib2.0-2.14.1/glib/gmessages.c:532 #6 0xb791c896 in IA__gtk_window_group_remove_window (window_group=0x0, window=0x89cab90) at /tmp/buildd/gtk+2.0-2.12.0/gtk/gtkwindow.c:7409 #7 0xb79200bf in IA__gtk_window_set_transient_for (window=0x89cab90, parent=0x0) at /tmp/buildd/gtk+2.0-2.12.0/gtk/gtkwindow.c:2033 #8 0xb6cd2cd8 in nsWindow::SetTransientParent (this=0x8dedc48, aParent=0x0) at nsWindow.cpp:3435 #9 0xb6cd42e0 in hierarchy_changed_cb (container=0x8bde690, previous_toplevel=0x8183130, window=0x8dedc48) at nsWindow.cpp:3819 #10 0xb70e4e6a in IA__g_cclosure_marshal_VOID__OBJECT (closure=0x9e76b80, return_value=0x0, n_param_values=2, param_values=0xbfb11b14, invocation_hint=0xbfb11a1c, marshal_data=0xb6cd4280) at /tmp/buildd/glib2.0-2.14.1/gobject/gmarshal.c:636 #11 0xb70d8619 in IA__g_closure_invoke (closure=0x9e76b80, return_value=0x0, n_param_values=2, param_values=0xbfb11b14, invocation_hint=0xbfb11a1c) at /tmp/buildd/glib2.0-2.14.1/gobject/gclosure.c:490 #12 0xb70ece0f in signal_emit_unlocked_R (node=0x8198b20, detail=0, instance=0x8bde690, emission_return=0x0, instance_and_params=0xbfb11b14) at /tmp/buildd/glib2.0-2.14.1/gobject/gsignal.c:2440 #13 0xb70eea5f in IA__g_signal_emit_valist (instance=0x62be, signal_id=24, detail=0, var_args=0xbfb11d50 "41\030\b\001") at /tmp/buildd/glib2.0-2.14.1/gobject/gsignal.c:2199 #14 0xb70eeda9 in IA__g_signal_emit (instance=0x8bde690, signal_id=24, detail=0) at /tmp/buildd/glib2.0-2.14.1/gobject/gsignal.c:2243 #15 0xb790c7b7 in gtk_widget_propagate_hierarchy_changed_recurse (widget=0x8bde690, client_data=0xbfb11d80) at /tmp/buildd/gtk+2.0-2.12.0/gtk/gtkwidget.c:6084 #16 0xb791057c in _gtk_widget_propagate_hierarchy_changed (widget=0x8bde690, previous_toplevel=0x8183130) at /tmp/buildd/gtk+2.0-2.12.0/gtk/gtkwidget.c:6125 #17 0xb7919e38 in IA__gtk_widget_unparent (widget=0x8bde690) at /tmp/buildd/gtk+2.0-2.12.0/gtk/gtkwidget.c:2850 #18 0xb770c655 in gtk_bin_remove (container=0x8641cc0, child=0x8bde690) at /tmp/buildd/gtk+2.0-2.12.0/gtk/gtkbin.c:112 #19 0xb70e4e6a in IA__g_cclosure_marshal_VOID__OBJECT (closure=0x819e3d8, return_value=0x0, n_param_values=2, param_values=0xbfb12184, invocation_hint=0xbfb1208c, marshal_data=0xb770c600) at /tmp/buildd/glib2.0-2.14.1/gobject/gmarshal.c:636 ---Type <return> to continue, or q <return> to quit--- #20 0xb70d6f39 in g_type_class_meta_marshal (closure=0x819e3d8, return_value=0x0, n_param_values=2, param_values=0xbfb12184, invocation_hint=0xbfb1208c, marshal_data=0x170) at /tmp/buildd/glib2.0-2.14.1/gobject/gclosure.c:567 #21 0xb70d86ef in IA__g_closure_invoke (closure=0x819e3d8, return_value=0x0, n_param_values=2, param_values=0xbfb12184, invocation_hint=0xbfb1208c) at /tmp/buildd/glib2.0-2.14.1/gobject/gclosure.c:490 #22 0xb70eca3b in signal_emit_unlocked_R (node=0x819c310, detail=0, instance=0x8641cc0, emission_return=0x0, instance_and_params=0xbfb12184) at /tmp/buildd/glib2.0-2.14.1/gobject/gsignal.c:2370 #23 0xb70eea5f in IA__g_signal_emit_valist (instance=0x62be, signal_id=82, detail=0, var_args=0xbfb123c0 "\224��\b\001") at /tmp/buildd/glib2.0-2.14.1/gobject/gsignal.c:2199 (it is longer but I cut it here) I have some patch for it and it is small. I don't say it good or something, but I use it and this fix my problems. --- System information. --- Architecture: i386 Kernel: Linux 2.6.23-rc6-sobkas-g19299b1a Debian Release: lenny/sid 500 unstable www.debian-multimedia.org 500 unstable ftp.pl.debian.org 500 kernel-dists-trunk kernel-archive.buildserver.net 500 experimental www.debian-multimedia.org 500 experimental ftp.pl.debian.org --- Package information. --- Depends (Version) | Installed ==========================================-+-====================== libgtk2.0-common (= 2.12.0-2) | 2.12.0-2 libatk1.0-0 (>= 1.20.0) | 1.20.0-1 libc6 (>= 2.6.1-1) | 2.6.1-5 libcairo2 (>= 1.4.0) | 1.4.10-1 libcomerr2 (>= 1.33-3) | 1.40.2-1 libcupsys2 (>= 1.3.0) | 1.3.2-1 libfontconfig1 (>= 2.4.0) | 2.4.2-1.2 libglib2.0-0 (>= 2.14.0) | 2.14.1-3 libgnutls13 (>= 1.7.17-0) | 1.7.19-1 libjpeg62 | 6b-14 libkrb53 (>= 1.6.dfsg.1) | 1.6.dfsg.1-7 libpango1.0-0 (>= 1.18.2) | 1.18.2-1 libpng12-0 (>= 1.2.13-4) | 1.2.15~beta5-2 libtiff4 | 3.8.2-7 libx11-6 | 2:1.1.3-1 libxcomposite1 (>= 1:0.3-1) | 1:0.3.2-1+b1 libxcursor1 (>> 1.1.2) | 1:1.1.9-1 libxdamage1 (>= 1:1.1) | 1:1.1.1-3 libxext6 | 1:1.0.3-2 libxfixes3 (>= 1:4.0.1) | 1:4.0.3-2 libxi6 | 2:1.1.3-1 libxinerama1 | 1:1.0.2-1 libxrandr2 (>= 2:1.2.0) | 2:1.2.2-1 libxrender1 | 1:0.9.4-1 zlib1g (>= 1:1.2.3.3.dfsg-1) | 1:1.2.3.3.dfsg-5
diff -rup gtk+2.0-2.11.6/gtk/gtkwindow.c ~gtk+2.0-2.11.6/gtk/gtkwindow.c --- gtk+2.0-2.11.6/gtk/gtkwindow.c 2007-07-20 22:12:29.000000000 +0200 +++ ~gtk+2.0-2.11.6/gtk/gtkwindow.c 2007-08-01 14:34:08.000000000 +0200 @@ -2028,9 +2028,11 @@ gtk_window_unset_transient_for (GtkWind if (window->transient_parent) { if (priv->transient_parent_group) - gtk_window_group_remove_window (window->group, - window); - + if (window->group) + { + gtk_window_group_remove_window (window->group, + window); + } g_signal_handlers_disconnect_by_func (window->transient_parent, gtk_window_transient_parent_realized, window);