Ethereal-users: [Ethereal-users] ethereal 0-8-15 crash in filter expression

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

From: Theodore Marescaux <Theodore.Marescaux@xxxxxxx>
Date: Thu, 22 Feb 2001 12:11:15 +0100
Hi,

I experienced a crash with the new filtering features added in 0-8-15. I updated to the nighlty build 2001-02-21 and still have the same problem.
I use RedHat 7.0, but ethereal has been complied with egcs-2.91.66 (and not with that tricky gcc-2.96 used by RH7.0). Here's what ethereal -version tells us:

ethereal 0.8.14, with GTK+ 1.2.8, with libpcap 0.4, with libz 1.1.3, without SNMP

The way to reproduce the bug is quite tricky, so I'm afraid this message is gonna be a bit long. Sorry for that...
I select a packet I want to filter out, then right click to get Display Filters. Click on Add _expression_. Then I get some GTK errors...

Gtk-WARNING **: invalid cast from (NULL) pointer to `GtkObject'

Gtk-CRITICAL **: file gtksignal.c: line 724 (gtk_signal_connect): assertion `object != NULL' failed.

Simply clicking Accept at that moment, generates some more GTK errors:

Gtk-WARNING **: invalid cast from (NULL) pointer to `GtkObject'

Gtk-CRITICAL **: file gtksignal.c: line 724 (gtk_signal_connect): assertion `object != NULL' failed.

Gtk-WARNING **: invalid cast from (NULL) pointer to `GtkEditable'

Gtk-CRITICAL **: file gtkeditable.c: line 557 (gtk_editable_get_position): assertion `editable != NULL' failed.

Gtk-WARNING **: invalid cast from (NULL) pointer to `GtkEditable'

Gtk-CRITICAL **: file gtkeditable.c: line 488 (gtk_editable_get_chars): assertion `editable != NULL' failed.

...and a seg fault core dump. Here's the stack trace cooked with gdb:

Program received signal SIGSEGV, Segmentation fault.
dfilter_expr_dlg_accept_cb (w=0x82b5808, filter_te_arg=0x0)
    at dfilter_expr_dlg.c:733
733  if (strcmp(chars, "") != 0 && !isspace((unsigned char)chars[0]))
(gdb) bt
#0  dfilter_expr_dlg_accept_cb (w=0x82b5808, filter_te_arg=0x0)
    at dfilter_expr_dlg.c:733
#1  0x400b58b3 in gtk_marshal_NONE__NONE () from /usr/lib/libgtk-1.2.so.0
#2  0x400e7c0a in gtk_handlers_run () from /usr/lib/libgtk-1.2.so.0
#3  0x400e6f4d in gtk_signal_real_emit () from /usr/lib/libgtk-1.2.so.0
#4  0x400e4cf5 in gtk_signal_emit () from /usr/lib/libgtk-1.2.so.0
#5  0x4004d9fd in gtk_button_clicked () from /usr/lib/libgtk-1.2.so.0
#6  0x4004f25d in gtk_real_button_released () from /usr/lib/libgtk-1.2.so.0
#7  0x400b58b3 in gtk_marshal_NONE__NONE () from /usr/lib/libgtk-1.2.so.0
#8  0x400e6dd8 in gtk_signal_real_emit () from /usr/lib/libgtk-1.2.so.0
#9  0x400e4cf5 in gtk_signal_emit () from /usr/lib/libgtk-1.2.so.0
#10 0x4004d92d in gtk_button_released () from /usr/lib/libgtk-1.2.so.0
#11 0x4004eb47 in gtk_button_button_release () from /usr/lib/libgtk-1.2.so.0
#12 0x400b557e in gtk_marshal_BOOL__POINTER () from /usr/lib/libgtk-1.2.so.0
#13 0x400e6f8c in gtk_signal_real_emit () from /usr/lib/libgtk-1.2.so.0
#14 0x400e4cf5 in gtk_signal_emit () from /usr/lib/libgtk-1.2.so.0
#15 0x4011ec39 in gtk_widget_event () from /usr/lib/libgtk-1.2.so.0
#16 0x400b54f5 in gtk_propagate_event () from /usr/lib/libgtk-1.2.so.0
#17 0x400b45bf in gtk_main_do_event () from /usr/lib/libgtk-1.2.so.0
#18 0x40169c21 in gdk_event_dispatch () from /usr/lib/libgdk-1.2.so.0
#19 0x4019c987 in g_main_dispatch () from /usr/lib/libglib-1.2.so.0
#20 0x4019d001 in g_main_iterate () from /usr/lib/libglib-1.2.so.0
#21 0x4019d1cc in g_main_run () from /usr/lib/libglib-1.2.so.0
#22 0x400b3e57 in gtk_main () from /usr/lib/libgtk-1.2.so.0
#23 0x8127336 in main (argc=1, argv=0xbffffb14) at main.c:1295
#24 0x402e1b65 in __libc_start_main (main=0x812682c <main>, argc=1,
    ubp_av=0xbffffb14, init=0x8062448 <_init>, fini=0x8157bac <_fini>,
    rtld_fini=0x4000df24 <_dl_fini>, stack_end=0xbffffb0c)
    at ../sysdeps/generic/libc-start.c:111
 

Finally, this bug doesn't happen when I click Filter (bottom left)  and then Display Filters... Is this only a GTK problem ???

Thanks for the quality of ethereal (never had any problems before ;),
Regards,
Theo