Ethereal-users: RE: [ethereal-users] Non-modal window deallocation bug in win32 build of etherea

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: "Graham Bloice" <graham.bloice@xxxxxxxxxxxxx>
Date: Wed, 2 Aug 2000 09:47:47 +0100
> I started off using ethereal fine - it disabled NAT-32, but I
> expected that.
> However, when using the real-time captured packets display, I found that,
> since the capture status window was non-modal when in real-time mode, the
> main window could be closed while leaving the capture window
> open. This then
> caused problems with closing the capture window - on doing so I got a GPF
> and the annoying sight of text being output in a command window to stderr
> and then immediately closed by Windows . . . I managed to get a
> copy of the
> output using "ethereal > out.txt". Here it is - looks to be fairly
> straightforward debug assertions indicating premature deallocation of the
> window objects, but I'm not into GTK, so I can't really fix it in the
> source:
> _________________
> Gtk-CRITICAL **: file gtkobject.c: line 1163 (gtk_object_ref): assertion
> `object->ref_count > 0' failed.
>
> Gtk-CRITICAL **: file gtkobject.c: line 1173 (gtk_object_unref):
> assertion
> `object->ref_count > 0' failed.
>
> Gtk-CRITICAL **: file gtkobject.c: line 1163 (gtk_object_ref): assertion
> `object->ref_count > 0' failed.
>
> Gtk-CRITICAL **: file gtkobject.c: line 1173 (gtk_object_unref):
> assertion
> `object->ref_count > 0' failed.
>
> Gtk-CRITICAL **: file gtkobject.c: line 1163 (gtk_object_ref): assertion
> `object->ref_count > 0' failed.
>
> Gtk-WARNING **: invalid cast from `(unknown)' to `GtkLabel'
>
> Gtk-CRITICAL **: file gtklabel.c: line 260 (gtk_label_set_text):
> assertion
> `GTK_IS_LABEL (label)' failed.
>
> Gtk-CRITICAL **: file gtkobject.c: line 1173 (gtk_object_unref):
> assertion
> `object->ref_count > 0' failed.
>
> Gtk-WARNING **: invalid cast from `(unknown)' to `GtkWindow'
>
> Gtk-CRITICAL **: file gtkwindow.c: line 405 (gtk_window_set_title):
> assertion `GTK_IS_WINDOW (window)' failed.
>
> Gdk-CRITICAL **: file gdkwindow-win32.c: line 1846
> (gdk_window_set_icon_name): assertion `window != NULL' failed.
>

I'm aware of this.  The whole thing with the real-time capture is a bit of a
kludge on windows, but there have been some improvements in the GTK Win32
I/O channels that I'm hoping to try out that will clean up the code
somewhat.  As to when I'll get time to do this though.  If you want to look
yourself then I can give some guidance.

> Also, I then tried to load some other applications, and internet
> ones failed
> - possibly the GPF, or perhaps the packet driver dereferencing into what
> should have been ethereal memory space . . .

I didn't notice this, but I didn't test too hard, I was just happy that I'd
got the real-time working.

>
> Anyway, hope this helps - I know how annoying non-modal windows can be :-)

I agree, but in this case unless I can stop the GPF happening, it may be
best to just accept a modal window to stop users closing the main window.

>
> Laurence Parry

Graham