summaryrefslogtreecommitdiff
path: root/ui
diff options
context:
space:
mode:
authorJoão Valverde <joao.valverde@tecnico.ulisboa.pt>2015-11-26 04:44:52 +0000
committerJoão Valverde <j@v6e.pt>2016-02-07 23:22:30 +0000
commit13ec77a9fc3af3b0b502820d0b55796c89997896 (patch)
treec5f5f72f090efd5471cf95095b00e13efa407959 /ui
parentd762a895ab570680e4e72142a348ad2b07c97d4f (diff)
downloadwireshark-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.c6
-rw-r--r--ui/gtk/compare_stat.c6
-rw-r--r--ui/gtk/follow_stream.c2
-rw-r--r--ui/gtk/graph_analysis.c10
-rw-r--r--ui/gtk/rtp_player.c4
-rw-r--r--ui/gtk/rtp_stream_dlg.c8
-rw-r--r--ui/gtk/wlan_stat_dlg.c6
-rw-r--r--ui/tap-sctp-analysis.c22
-rw-r--r--ui/tap-sequence-analysis.c9
-rw-r--r--ui/voip_calls.c17
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);
}