Hi, This patch fix off-by-one error in packet_list_init() and makes new_packet_list_append() to use stack for row_data_t.
Btw. There's new issue, when I load some capture into wireshark, and don't click any packet. I got SIGSEGV on closing capture (^W) on quiting (^Q) (gdb) bt #0 0x000000000044ea8f in set_menus_for_selected_packet (cf=0x79e3e0) at menus.c:2639 #1 0x000000000044a15b in main_cf_callback (event=<value optimized out>, data=0x79e3e0, user_data=<value optimized out>) at main.c:1277 #2 0x0000000000435145 in cf_callback_invoke (event=0, data=0x79e3e0) at file.c:146 #3 0x0000000000438c7e in cf_close (cf=0x79e3e0) at file.c:385 [cut] 2639 set_menu_sensitivity(packet_list_menu_factory, "/SCTP", 2640 cf->current_frame != NULL ? (cf->edt->pi.ipproto == IP_PROTO_SCTP) : FALSE); cf->current_frame $1 = (frame_data *) 0x16bcae0, but cf->edt $2 = (epan_dissect_t *) 0x0
diff --git gtk/new_packet_list.c gtk/new_packet_list.c index cbf2f6c..fec3d12 100644 --- gtk/new_packet_list.c +++ gtk/new_packet_list.c @@ -85,20 +85,18 @@ guint new_packet_list_append(column_info cinfo, frame_data *fdata) { gint i; - row_data_t *row_data; + row_data_t row_data; - row_data = g_new0(row_data_t, 1); + memset(&row_data, 0, sizeof(row_data_t)); for(i = 0; i < cfile.cinfo.num_cols; i++) { - row_data->col_text[cinfo.col_fmt[i]] = + row_data.col_text[cinfo.col_fmt[i]] = se_strdup(cinfo.col_data[i]); } - row_data->fdata = fdata; + row_data.fdata = fdata; - packet_list_append_record(packetlist, row_data); - - g_free(row_data); + packet_list_append_record(packetlist, &row_data); return packetlist->num_rows; /* XXX - Check that this is the right # */ } diff --git gtk/packet_list_store.c gtk/packet_list_store.c index 7c8670b..92d4f12 100644 --- gtk/packet_list_store.c +++ gtk/packet_list_store.c @@ -202,10 +202,9 @@ packet_list_init(PacketList *packet_list) { guint i; - for(i = 0; i <= NUM_COL_FMTS; i++) { /* XXX - Temporary? */ + for(i = 0; i < NUM_COL_FMTS; i++) { /* XXX - Temporary? */ packet_list->column_types[i] = G_TYPE_STRING; } - packet_list->n_columns = NUM_COL_FMTS; packet_list->num_rows = 0;
___________________________________________________________________________ Sent via: Wireshark-dev mailing list <wireshark-dev@wireshark.org> Archives: http://www.wireshark.org/lists/wireshark-dev Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev mailto:wireshark-dev-requ...@wireshark.org?subject=unsubscribe