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

Reply via email to