ANNOUNCEMENT: Live Wireshark University & Allegro Packets online APAC Wireshark Training Session
July 17th, 2024 | 10:00am-11:55am SGT (UTC+8) | Online

Ethereal-dev: [Ethereal-dev] Bug causing ethereal to crash

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

From: "J. Scott Berg" <jsberg@xxxxxxx>
Date: Thu, 3 Jun 2004 21:53:04 -0400 (EDT)
Hello--

  ethereal-0.10.4
  Linux x86, kernel 2.4.26, gcc-3.4, gtk+-2.4.1.

./configure --prefix=/opt/ethereal-0.10.4 --with-gtk-prefix=/opt/gnome-2.6 --with-glib-prefix=/opt/gnome-2.6 --with-pcap=/opt/libpcap-0.8.3 --with-ssl=/opt/openssl-0.9.7d --with-net-snmp=/opt/net-snmp-5.1.1/bin/net-snmp-config --enable-threads --with-adns=/opt/adns-1.0 --enable-gtk2 CPPFLAGS=-I/opt/adns-1.0/include

  I had one of those

** ERROR **: file ftypes.c: line 431 (fvalue_set): assertion failed: (fv->ftype->set_value)

that a few others have found.  It occurs as soon as ethereal tries to
display a packet.  I think I've tracked down the cause.  I think that
the SLAB_ALLOC/SLAB_FREE macros break ANSI strict aliasing rules.  The
problem is that the memory at the beginning of an item in the list is
accessed both through a "struct _freed_item*" and a "field_info *".
This means that the complier is free to re-order those accesses, and
some versions of gcc (gcc-3.4 in my case) do (I verified that it was
in fact re-ordering that access).

configuring with CFLAGS='-g -O2 -fno-strict-aliasing' makes it work.

--
J. Scott Berg                           Email: jsberg@xxxxxxx