Ethereal-dev: [Ethereal-dev] Crash for get_tcp_conversation_data

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

Date: Thu, 18 Sep 2003 8:21:38 +0200
When I load som captures with the nightly builds from last week(s) I get a crash in get_tcp_conversation_data.

First I get this GTK warning:

(etherea_rtp.exe:612): GLib-CRITICAL **: file gmem.c: line 747 (g_mem_chunk_allo
c): assertion `mem_chunk != NULL' failed
and then I get a crash due to a pointer being 0x00000.

static struct tcp_analysis *
get_tcp_conversation_data(packet_info *pinfo)
{
	conversation_t *conv=NULL;
	struct tcp_analysis *tcpd=NULL;

	/* Have we seen this conversation before? */
	if( (conv=find_conversation(&pinfo->src, &pinfo->dst, pinfo->ptype, pinfo->srcport, pinfo->destport, 0)) == NULL){
		/* No this is a new conversation. */
		conv=conversation_new(&pinfo->src, &pinfo->dst, pinfo->ptype, pinfo->srcport, pinfo->destport, 0);
	}

	/* check if we have any data for this conversation */
	tcpd=conversation_get_proto_data(conv, proto_tcp);
	if(!tcpd){
		/* No no such data yet. Allocate and init it */
		tcpd=g_mem_chunk_alloc(tcp_analysis_chunk);  		tcpd->ual1=NULL;  // <========== Crash here, tcpd = 0x000000

		tcpd->base_seq1=0;
		tcpd->win_scale1=-1;
		tcpd->ual2=NULL;
		tcpd->base_seq2=0;
		tcpd->win_scale2=-1;

		tcpd->pdu_seq1=NULL;
		tcpd->pdu_seq2=NULL;

		conversation_add_proto_data(conv, proto_tcp, tcpd);
	}

	return tcpd;
}



get_tcp_conversation_data(_packet_info * 0x019288d8) line 282 + 3 bytes
pdu_store_window_scale_option(_packet_info * 0x019288d8, unsigned char 3) line 451 + 9 bytes
dissect_tcpopt_wscale(const ip_tcp_opt * 0x00785b78, tvbuff * 0x0191b290, int 21, unsigned int 3, _packet_info * 0x019288d8, _GNode * 0x01924fac) line 1869 + 13 bytes
dissect_ip_tcp_options(tvbuff * 0x0191b290, int 21, unsigned int 21, const ip_tcp_opt * 0x00785b30 tcpopts, int 13, int 0, _packet_info * 0x019288d8, _GNode * 0x01924fac) line 727 + 27 bytes
dissect_tcp(tvbuff * 0x0191b290, _packet_info * 0x019288d8, _GNode * 0x0192f560) line 2483 + 46 bytes
call_dissector_through_handle(dissector_handle * 0x018943d0, tvbuff * 0x0191b290, _packet_info * 0x019288d8, _GNode * 0x0192f560) line 362 + 18 bytes
call_dissector_work(dissector_handle * 0x018943d0, tvbuff * 0x0191b290, _packet_info * 0x019288d8, _GNode * 0x0192f560) line 507 + 21 bytes
dissector_try_port(dissector_table * 0x015d1fc0, unsigned int 6, tvbuff * 0x0191b290, _packet_info * 0x019288d8, _GNode * 0x0192f560) line 771 + 21 bytes
dissect_ip(tvbuff * 0x0191b25c, _packet_info * 0x019288d8, _GNode * 0x0192f560) line 1089 + 33 bytes
call_dissector_through_handle(dissector_handle * 0x015d2118, tvbuff * 0x0191b25c, _packet_info * 0x019288d8, _GNode * 0x0192f560) line 362 + 18 bytes
call_dissector_work(dissector_handle * 0x015d2118, tvbuff * 0x0191b25c, _packet_info * 0x019288d8, _GNode * 0x0192f560) line 507 + 21 bytes
dissector_try_port(dissector_table * 0x015b4120, unsigned int 2048, tvbuff * 0x0191b25c, _packet_info * 0x019288d8, _GNode * 0x0192f560) line 771 + 21 bytes
ethertype(unsigned short 2048, tvbuff * 0x0191b228, int 14, _packet_info * 0x019288d8, _GNode * 0x0192f560, _GNode * 0x0192f920, int 2687, int 2689) line 171 + 34 bytes
dissect_eth(tvbuff * 0x0191b228, _packet_info * 0x019288d8, _GNode * 0x0192f560) line 282 + 44 bytes
call_dissector_through_handle(dissector_handle * 0x015b3c90, tvbuff * 0x0191b228, _packet_info * 0x019288d8, _GNode * 0x0192f560) line 362 + 18 bytes
call_dissector_work(dissector_handle * 0x015b3c90, tvbuff * 0x0191b228, _packet_info * 0x019288d8, _GNode * 0x0192f560) line 507 + 21 bytes
dissector_try_port(dissector_table * 0x015bc9d8, unsigned int 1, tvbuff * 0x0191b228, _packet_info * 0x019288d8, _GNode * 0x0192f560) line 771 + 21 bytes
dissect_frame(tvbuff * 0x0191b228, _packet_info * 0x019288d8, _GNode * 0x0192f560) line 180 + 34 bytes
call_dissector_through_handle(dissector_handle * 0x015bce90, tvbuff * 0x0191b228, _packet_info * 0x019288d8, _GNode * 0x0192f560) line 362 + 18 bytes
call_dissector_work(dissector_handle * 0x015bce90, tvbuff * 0x0191b228, _packet_info * 0x019288d8, _GNode * 0x0192f560) line 507 + 21 bytes
call_dissector(dissector_handle * 0x015bce90, tvbuff * 0x0191b228, _packet_info * 0x019288d8, _GNode * 0x0192f560) line 1575 + 21 bytes
dissect_packet(_epan_dissect_t * 0x019288d0, wtap_pseudo_header * 0x01933d3c, const unsigned char * 0x019ca190, _frame_data * 0x0196a6d8, _column_info * 0x00b029f0) line 310 + 32 bytes
epan_dissect_run(_epan_dissect_t * 0x019288d0, void * 0x01933d3c, const unsigned char * 0x019ca190, _frame_data * 0x0196a6d8, _column_info * 0x00b029f0) line 106 + 25 bytes
add_packet_to_packet_list(_frame_data * 0x0196a6d8, _capture_file * 0x00af28c0, wtap_pseudo_header * 0x01933d3c, const unsigned char * 0x019ca190, int 1) line 769 + 31 bytes
read_packet(_capture_file * 0x00af28c0, long 46732) line 894 + 23 bytes
cf_read(_capture_file * 0x00af28c0, int * 0x0012ecd8) line 419 + 13 bytes
file_open_ok_cb(_GtkWidget * 0x01910ad0, _GtkFileSelection * 0x019197b0) line 259 + 14 bytes
LIBGTK-0! 6dc88a5c()
LIBGTK-0! 6dcc362f()
LIBGTK-0! 6dcc2bba()
LIBGTK-0! 6dcc0a68()
LIBGTK-0! 6dc0f7c4()
LIBGTK-0! 6dc5c942()