diff options
author | João Valverde <joao.valverde@tecnico.ulisboa.pt> | 2015-11-26 04:44:52 +0000 |
---|---|---|
committer | João Valverde <j@v6e.pt> | 2016-02-07 23:22:30 +0000 |
commit | 13ec77a9fc3af3b0b502820d0b55796c89997896 (patch) | |
tree | c5f5f72f090efd5471cf95095b00e13efa407959 /ui | |
parent | d762a895ab570680e4e72142a348ad2b07c97d4f (diff) | |
download | wireshark-13ec77a9fc3af3b0b502820d0b55796c89997896.tar.gz |
Add free_address_wmem() and other extensions to address API
Try to improve 'address' API (to be easier/safer) and also avoid
some constness warnings by not overloading the 'data' pointer to
store malloc'ed buffers (use private pointer for that instead).
Change-Id: I7456516b12c67620ceadac447907c12f5905bd49
Reviewed-on: https://code.wireshark.org/review/13463
Petri-Dish: João Valverde <j@v6e.pt>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: João Valverde <j@v6e.pt>
Diffstat (limited to 'ui')
-rw-r--r-- | ui/cli/tap-comparestat.c | 6 | ||||
-rw-r--r-- | ui/gtk/compare_stat.c | 6 | ||||
-rw-r--r-- | ui/gtk/follow_stream.c | 2 | ||||
-rw-r--r-- | ui/gtk/graph_analysis.c | 10 | ||||
-rw-r--r-- | ui/gtk/rtp_player.c | 4 | ||||
-rw-r--r-- | ui/gtk/rtp_stream_dlg.c | 8 | ||||
-rw-r--r-- | ui/gtk/wlan_stat_dlg.c | 6 | ||||
-rw-r--r-- | ui/tap-sctp-analysis.c | 22 | ||||
-rw-r--r-- | ui/tap-sequence-analysis.c | 9 | ||||
-rw-r--r-- | ui/voip_calls.c | 17 |
10 files changed, 33 insertions, 57 deletions
diff --git a/ui/cli/tap-comparestat.c b/ui/cli/tap-comparestat.c index 992666f443..286310103a 100644 --- a/ui/cli/tap-comparestat.c +++ b/ui/cli/tap-comparestat.c @@ -119,8 +119,8 @@ comparestat_packet(void *arg, packet_info *pinfo, epan_dissect_t *edt _U_, const /* so this get filled, usually with the first frame */ if (cs->eth_dst.len == 0) { - cs->eth_dst = pinfo->dl_dst; - cs->eth_src = pinfo->dl_src; + copy_address_shallow(&cs->eth_dst, &pinfo->dl_dst); + copy_address_shallow(&cs->eth_src, &pinfo->dl_src); } /* Set up the fields of the pseudo-header and create checksum */ @@ -145,7 +145,7 @@ comparestat_packet(void *arg, packet_info *pinfo, epan_dissect_t *edt _U_, const fInfo->num = pinfo->num; fInfo->id = ci->ip_id; fInfo->ip_ttl = ci->ip_ttl; - fInfo->dl_dst = pinfo->dl_dst; + copy_address_shallow(&fInfo->dl_dst, &pinfo->dl_dst); fInfo->abs_ts = pinfo->abs_ts; /* clean memory */ nstime_set_zero(&fInfo->zebra_time); diff --git a/ui/gtk/compare_stat.c b/ui/gtk/compare_stat.c index 1d77b253be..7239d5bace 100644 --- a/ui/gtk/compare_stat.c +++ b/ui/gtk/compare_stat.c @@ -180,8 +180,8 @@ comparestat_packet(void *arg, packet_info *pinfo, epan_dissect_t *edt _U_, const /* so this get filled, usually with the first frame */ if(cs->eth_dst.len==0) { - cs->eth_dst=pinfo->dl_dst; - cs->eth_src=pinfo->dl_src; + copy_address_shallow(&cs->eth_dst, &pinfo->dl_dst); + copy_address_shallow(&cs->eth_src, &pinfo->dl_src); } /* Set up the fields of the pseudo-header and create checksum */ @@ -212,7 +212,7 @@ comparestat_packet(void *arg, packet_info *pinfo, epan_dissect_t *edt _U_, const fInfo->num=pinfo->num; fInfo->id=ci->ip_id; fInfo->ip_ttl=ci->ip_ttl; - fInfo->dl_dst=pinfo->dl_dst; + copy_address_shallow(&fInfo->dl_dst, &pinfo->dl_dst); fInfo->abs_ts=pinfo->abs_ts; /* clean memory */ nstime_set_zero(&fInfo->zebra_time); diff --git a/ui/gtk/follow_stream.c b/ui/gtk/follow_stream.c index ff98dfb227..1413ba54b0 100644 --- a/ui/gtk/follow_stream.c +++ b/ui/gtk/follow_stream.c @@ -1055,7 +1055,7 @@ follow_destroy_cb(GtkWidget *w, gpointer data _U_) g_list_free(follow_info->payload); g_free(follow_info->filter_out_filter); - g_free((gpointer)follow_info->client_ip.data); + free_address(&follow_info->client_ip); forget_follow_info(follow_info); g_free(gtk_follow_info); g_free(follow_info); diff --git a/ui/gtk/graph_analysis.c b/ui/gtk/graph_analysis.c index b8b78cb816..d6351f6d6b 100644 --- a/ui/gtk/graph_analysis.c +++ b/ui/gtk/graph_analysis.c @@ -86,10 +86,7 @@ static void graph_analysis_reset(graph_analysis_data_t *user_data) user_data->graph_info->num_nodes = 0; user_data->num_items = 0; for (i=0; i<MAX_NUM_NODES; i++) { - user_data->graph_info->nodes[i].type = AT_NONE; - user_data->graph_info->nodes[i].len = 0; - g_free((void *)user_data->graph_info->nodes[i].data); - user_data->graph_info->nodes[i].data = NULL; + free_address(&user_data->graph_info->nodes[i]); } user_data->dlg.first_node = 0; @@ -157,10 +154,7 @@ static void on_destroy(GtkWidget *win _U_, graph_analysis_data_t *user_data) int i; for (i=0; i<MAX_NUM_NODES; i++) { - user_data->graph_info->nodes[i].type = AT_NONE; - user_data->graph_info->nodes[i].len = 0; - g_free((void *)user_data->graph_info->nodes[i].data); - user_data->graph_info->nodes[i].data = NULL; + free_address(&user_data->graph_info->nodes[i]); } user_data->dlg.window = NULL; g_free(user_data->dlg.title); diff --git a/ui/gtk/rtp_player.c b/ui/gtk/rtp_player.c index 3503f10634..40cae45c3a 100644 --- a/ui/gtk/rtp_player.c +++ b/ui/gtk/rtp_player.c @@ -254,8 +254,8 @@ rtp_stream_value_destroy(gpointer rsi_arg) rtp_packet_list = g_list_next(rtp_packet_list); } - g_free((void *)(rsi->src_addr.data)); - g_free((void *)(rsi->dest_addr.data)); + free_address(&rsi->src_addr); + free_address(&rsi->dest_addr); g_free(rsi); rsi = NULL; } diff --git a/ui/gtk/rtp_stream_dlg.c b/ui/gtk/rtp_stream_dlg.c index e87549ea43..8cdb194a08 100644 --- a/ui/gtk/rtp_stream_dlg.c +++ b/ui/gtk/rtp_stream_dlg.c @@ -516,10 +516,10 @@ rtpstream_on_analyse(GtkButton *button _U_, gpointer user_data _U_) return; } - set_address(&src_fwd,AT_NONE,0,NULL); - set_address(&dst_fwd,AT_NONE,0,NULL); - set_address(&src_rev,AT_NONE,0,NULL); - set_address(&dst_rev,AT_NONE,0,NULL); + clear_address(&src_fwd); + clear_address(&dst_fwd); + clear_address(&src_rev); + clear_address(&dst_rev); if (selected_stream_fwd) { copy_address(&(src_fwd), &(selected_stream_fwd->src_addr)); diff --git a/ui/gtk/wlan_stat_dlg.c b/ui/gtk/wlan_stat_dlg.c index 4965a9cd59..9cd9b86181 100644 --- a/ui/gtk/wlan_stat_dlg.c +++ b/ui/gtk/wlan_stat_dlg.c @@ -146,7 +146,7 @@ dealloc_wlan_details_ep (wlan_details_ep_t *details) while (details) { tmp = details; details = details->next; - g_free ((void*)tmp->addr.data); + free_address(&tmp->addr); g_free (tmp); } } @@ -206,7 +206,7 @@ wlanstat_reset (void *phs) tmp = list; dealloc_wlan_details_ep(tmp->details); list = tmp->next; - g_free((void*)tmp->bssid.data); + free_address(&tmp->bssid); g_free(tmp); } @@ -462,7 +462,7 @@ wlanstat_packet (void *phs, packet_info *pinfo, epan_dissect_t *edt _U_, const v if (tmp->iter_valid) { gtk_list_store_remove(store, &tmp->iter); } - g_free((void*)tmp->bssid.data); + free_address(&tmp->bssid); g_free(tmp); break; } diff --git a/ui/tap-sctp-analysis.c b/ui/tap-sctp-analysis.c index be81646d27..05229b94f0 100644 --- a/ui/tap-sctp-analysis.c +++ b/ui/tap-sctp-analysis.c @@ -548,23 +548,17 @@ packet(void *tapdata _U_, packet_info *pinfo, epan_dissect_t *edt _U_, const voi info->arwnd1 = tvb_get_ntohl(sctp_info->tvb[0], INIT_CHUNK_ADV_REC_WINDOW_CREDIT_OFFSET); for (chunk_number = 1; chunk_number < sctp_info->number_of_tvbs; chunk_number++) { - type = tvb_get_ntohs(sctp_info->tvb[chunk_number],0); + type = tvb_get_ntohs(sctp_info->tvb[chunk_number],0); if (type == IPV4ADDRESS_PARAMETER_ID) { store = (address *)g_malloc(sizeof (address)); - store->type = AT_IPv4; - store->len = 4; - store->data = g_malloc(4); - tvb_memcpy(sctp_info->tvb[chunk_number], (void *)store->data,IPV4_ADDRESS_OFFSET, 4); + alloc_address_tvb(NULL, store, AT_IPv4, 4, sctp_info->tvb[chunk_number], IPV4_ADDRESS_OFFSET); info = add_address(store, info, 1); } else if (type == IPV6ADDRESS_PARAMETER_ID) { store = (address *)g_malloc(sizeof (address)); - store->type = AT_IPv6; - store->len = 16; - store->data = g_malloc(16); - tvb_memcpy(sctp_info->tvb[chunk_number], (guint8 *)(store->data),IPV6_ADDRESS_OFFSET, IPV6_ADDRESS_LENGTH); + alloc_address_tvb(NULL, store, AT_IPv6, 16, sctp_info->tvb[chunk_number], IPV6_ADDRESS_OFFSET); info = add_address(store, info, 1); } } @@ -923,19 +917,13 @@ packet(void *tapdata _U_, packet_info *pinfo, epan_dissect_t *edt _U_, const voi if (type == IPV4ADDRESS_PARAMETER_ID) { store = (address *)g_malloc(sizeof (address)); - store->type = AT_IPv4; - store->len = 4; - store->data = g_malloc(4); - tvb_memcpy(sctp_info->tvb[chunk_number], (guint8 *)(store->data),IPV4_ADDRESS_OFFSET, 4); + alloc_address_tvb(NULL, store, AT_IPv4, 4, sctp_info->tvb[chunk_number], IPV4_ADDRESS_OFFSET); info = add_address(store, info, info->direction); } else if (type == IPV6ADDRESS_PARAMETER_ID) { store = (address *)g_malloc(sizeof (address)); - store->type = AT_IPv6; - store->len = 16; - store->data = g_malloc(16); - tvb_memcpy(sctp_info->tvb[chunk_number], (guint8 *)(store->data),IPV6_ADDRESS_OFFSET, IPV6_ADDRESS_LENGTH); + alloc_address_tvb(NULL, store, AT_IPv6, 16, sctp_info->tvb[chunk_number], IPV6_ADDRESS_OFFSET); info = add_address(store, info, info->direction); } } diff --git a/ui/tap-sequence-analysis.c b/ui/tap-sequence-analysis.c index 84f2a0f228..e419f4c9be 100644 --- a/ui/tap-sequence-analysis.c +++ b/ui/tap-sequence-analysis.c @@ -299,8 +299,8 @@ static void sequence_analysis_item_free(gpointer data) g_free(seq_item->time_str); g_free(seq_item->comment); g_free(seq_item->protocol); - g_free((void *)seq_item->src_addr.data); - g_free((void *)seq_item->dst_addr.data); + free_address(&seq_item->src_addr); + free_address(&seq_item->dst_addr); g_free(data); } @@ -360,10 +360,7 @@ sequence_analysis_list_free(seq_analysis_info_t *sainfo) sainfo->nconv = 0; for (i=0; i<MAX_NUM_NODES; i++) { - sainfo->nodes[i].type = AT_NONE; - sainfo->nodes[i].len = 0; - g_free((void *)sainfo->nodes[i].data); - sainfo->nodes[i].data = NULL; + free_address(&sainfo->nodes[i]); } sainfo->num_nodes = 0; } diff --git a/ui/voip_calls.c b/ui/voip_calls.c index 3fae9edc3c..a65b67e21e 100644 --- a/ui/voip_calls.c +++ b/ui/voip_calls.c @@ -280,7 +280,7 @@ voip_calls_reset_all_taps(voip_calls_tapinfo_t *tapinfo) g_free(callsinfo->call_id); g_free(callsinfo->from_identity); g_free(callsinfo->to_identity); - g_free((void *)(callsinfo->initial_speaker.data)); + free_address(&callsinfo->initial_speaker); g_free(callsinfo->protocol_name); g_free(callsinfo->call_comment); @@ -1227,8 +1227,8 @@ TODO: is useful but not perfect, what is appended is truncated when displayed in add_to_graph(tapinfo, pinfo, edt, frame_label, comment, callsinfo->call_num, &(pinfo->src), &(pinfo->dst), 1); g_free(comment); g_free(frame_label); - g_free((void *)tmp_src.data); - g_free((void *)tmp_dst.data); + free_address(&tmp_src); + free_address(&tmp_dst); /* add SDP info if apply */ if ( (tapinfo->sdp_summary != NULL) && (tapinfo->sdp_frame_num == pinfo->num) ) { @@ -1663,7 +1663,7 @@ q931_calls_packet(void *tap_offset_ptr, packet_info *pinfo, epan_dissect_t *edt, while (list2) { h245_add=(h245_address_t *)list2->data; - g_free((void *)h245_add->h245_address.data); + free_address(&h245_add->h245_address); g_free(list2->data); list2 = g_list_next(list2); } @@ -1822,7 +1822,7 @@ q931_calls_packet(void *tap_offset_ptr, packet_info *pinfo, epan_dissect_t *edt, wmem_free(NULL, tmp_str); g_free(comment); - g_free((char *)pstn_add.data); + free_address(&pstn_add); } tapinfo->redraw |= REDRAW_Q931; @@ -1895,7 +1895,7 @@ free_h225_info(gpointer p) { while (list2) { h245_address_t *h245_add=(h245_address_t *)list2->data; - g_free((void *)h245_add->h245_address.data); + free_address(&h245_add->h245_address); g_free(list2->data); list2 = g_list_next(list2); } @@ -2026,10 +2026,7 @@ h225_calls_packet(void *tap_offset_ptr, packet_info *pinfo, epan_dissect_t *edt, /* this is still IPv4 only, because the dissector is */ if (pi->is_h245 == TRUE) { h245_add = (h245_address_t *)g_malloc(sizeof (h245_address_t)); - h245_add->h245_address.type=AT_IPv4; - h245_add->h245_address.len=4; - h245_add->h245_address.data = g_malloc(sizeof(pi->h245_address)); - memcpy((void *)(h245_add->h245_address.data), &(pi->h245_address), 4); + alloc_address_wmem(NULL, &h245_add->h245_address, AT_IPv4, 4, &pi->h245_address); h245_add->h245_port = pi->h245_port; add_h245_Address(tmp_h323info, h245_add); } |