Ethereal-dev: Re: [Ethereal-dev] assertion failed in both ethereal and tethereal

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

From: ronnie sahlberg <ronniesahlberg@xxxxxxxxx>
Date: Sun, 29 Aug 2004 07:50:00 +1000
thanks.    i have checked in a fix for this problem.


On Sat, 28 Aug 2004 22:00:17 +1000, Andrew Hood <ajhood@xxxxxxxxx> wrote:
> ethereal 0.10.6 (SVN 20040827090146)
> Compiled with GTK+ 2.3.0, with GLib 2.3.5, with libpcap 0.8.3, with libz
> 1.1.4,
> with libpcre 4.4, with Net-SNMP 5.1, with ADNS.
> Running with libpcap version 0.8.3 on Linux 2.4.21.
> 
> I got this crash from both ethereal and tethereal. The attached pcap is
> enough to trigger it. It does not happen with 0.10.5 (SVN
> 20040723183607) and the same versions of glib, gtk, libpcap, libz and ADNS.
> 
> ==============
>  GLib-CRITICAL **: file gmem.c: line 746 (g_mem_chunk_alloc): assertion
> `mem_chunk != NULL' failed
> 
> This partial trace is from "tethereal -r segv.pcap"
> 
> (process:18968): GLib-CRITICAL **: file gmem.c: line 746
> (g_mem_chunk_alloc): assertion `mem_chunk != NULL' failed
> 
> Program received signal SIGSEGV, Segmentation fault.
> get_tcp_conversation_data (pinfo=0x81e6ef0) at packet-tcp.c:293
> 293                     tcpd->ual1=NULL;
> (gdb) bt
> #0  get_tcp_conversation_data (pinfo=0x81e6ef0) at packet-tcp.c:293
> #1  0x404ab70a in verify_tcp_window_scaling (pinfo=0x81e6ef0) at
> packet-tcp.c:502
> 
> Rest of backtrace seems irrelevent due to analysis below.
> ==============
> 
> It looks like get_tcp_conversation_data tries to use tcp_analysis_chunk
> but tcp_analyze_seq_init did not initialise it because tcp_analyze_seq
> was zero. The default value of tcp.analyze_sequence_numbers appears to
> be FALSE which explains that.
> 
> So is the correct answer to check tcp_analyze_seq before calling
> verify_tcp_window_scaling? That certainly fixes the crash.
> 
> Index: epan/dissectors/packet-tcp.c
> ===================================================================
> --- epan/dissectors/packet-tcp.c        (revision 11842)
> +++ epan/dissectors/packet-tcp.c        (working copy)
> @@ -2893,7 +2893,8 @@
>     * then we should just forget about the windowscaling completely.
>     */
>    if(!pinfo->fd->flags.visited){
> -    if((tcph->th_flags & (TH_SYN|TH_ACK))==(TH_SYN|TH_ACK)) {
> +    if(tcp_analyze_seq &&
> +       ((tcph->th_flags & (TH_SYN|TH_ACK))==(TH_SYN|TH_ACK))) {
>        verify_tcp_window_scaling(pinfo);
>      }
>    }
> 
> --
> There's no point in being grown up if you can't be childish sometimes.
>                 -- Dr. Who
> 
> 
> _______________________________________________
> Ethereal-dev mailing list
> Ethereal-dev@xxxxxxxxxxxx
> http://www.ethereal.com/mailman/listinfo/ethereal-dev
> 
> 
> 
>