diff options
39 files changed, 287 insertions, 165 deletions
diff --git a/debian/libwireshark0.symbols b/debian/libwireshark0.symbols index fa59228221..3ec0adbafd 100644 --- a/debian/libwireshark0.symbols +++ b/debian/libwireshark0.symbols @@ -442,7 +442,6 @@ libwireshark.so.0 libwireshark0 #MINVER# elem_v_short@Base 1.9.1 emem_init@Base 1.9.1 empty_tcp_stream@Base 1.9.1 - ep_address_to_str@Base 1.9.1 ep_alloc0@Base 1.9.1 ep_alloc@Base 1.9.1 ep_memdup@Base 1.9.1 diff --git a/docbook/release-notes.asciidoc b/docbook/release-notes.asciidoc index e08330eb34..ebbd6b03e9 100644 --- a/docbook/release-notes.asciidoc +++ b/docbook/release-notes.asciidoc @@ -111,7 +111,8 @@ Colasoft Capsa files The libwireshark API has undergone some major changes: -* Many of the ep_ and se_ memory allocation routines have been removed. +* Many of the ep_ and se_ memory allocation routines and methods that +invoked them implicitly have been removed. * The (long-since-broken) Python bindings support has been removed. If you want to write dissectors in something other than C, use Lua. diff --git a/epan/addr_resolv.c b/epan/addr_resolv.c index e352952cd9..bbc1d13675 100644 --- a/epan/addr_resolv.c +++ b/epan/addr_resolv.c @@ -1555,7 +1555,7 @@ eth_addr_resolve(hashether_t *tp) { /* No match whatsoever. */ SET_ADDRESS(ðer_addr, AT_ETHER, 6, addr); - g_snprintf(tp->resolved_name, MAXNAMELEN, "%s", ep_address_to_str(ðer_addr)); + address_to_str_buf(ðer_addr, tp->resolved_name, MAXNAMELEN); tp->status = HASHETHER_STATUS_RESOLVED_DUMMY; return tp; } diff --git a/epan/addr_resolv.h b/epan/addr_resolv.h index 9051362f2a..91c273c3ae 100644 --- a/epan/addr_resolv.h +++ b/epan/addr_resolv.h @@ -138,7 +138,7 @@ WS_DLL_PUBLIC gchar *ep_sctp_port_to_display(guint port); /* - if the address is of a type that can be translated into a name, and the user */ /* has activated name resolution, the translated name */ /* - if the address is of type AT_NONE, a pointer to the string "NONE" */ -/* - if the address is of any other type, the result of ep_address_to_str on the argument, */ +/* - if the address is of any other type, the result of address_to_str on the argument, */ /* which should be a string representation for the answer -e.g. "10.10.10.10" for IPv4 */ /* address 10.10.10.10 */ WS_DLL_PUBLIC diff --git a/epan/address_to_str.c b/epan/address_to_str.c index 62a79edb17..b9081d5fa8 100644 --- a/epan/address_to_str.c +++ b/epan/address_to_str.c @@ -282,7 +282,7 @@ tvb_vines_addr_to_str(tvbuff_t *tvb, const gint offset) /* This function is very fast and this function is called a lot. - XXX update the ep_address_to_str stuff to use this function. + XXX update the address_to_str stuff to use this function. */ gchar * eui64_to_str(const guint64 ad) { @@ -455,16 +455,6 @@ address_to_str(wmem_allocator_t *scope, const address *addr) return str; } -gchar* -ep_address_to_str(const address *addr) -{ - gchar *str; - - str=(gchar *)ep_alloc(MAX_ADDR_STR_LEN); - address_to_str_buf(addr, str, MAX_ADDR_STR_LEN); - return str; -} - void address_to_str_buf(const address *addr, gchar *buf, int buf_len) { diff --git a/epan/conversation.c b/epan/conversation.c index 398d213448..89df1cea63 100644 --- a/epan/conversation.c +++ b/epan/conversation.c @@ -28,6 +28,7 @@ #include <glib.h> #include "packet.h" #include "emem.h" +#include "to_str.h" #include "conversation.h" /* define DEBUG_CONVERSATION for pretty debug printing */ @@ -677,8 +678,8 @@ conversation_new(const guint32 setup_frame, const address *addr1, const address conversation_key *new_key; DPRINT(("creating conversation for frame #%d: %s:%d -> %s:%d (ptype=%d)", - setup_frame, ep_address_to_str(addr1), port1, - ep_address_to_str(addr2), port2, ptype)); + setup_frame, address_to_str(wmem_packet_scope(), addr1), port1, + address_to_str(wmem_packet_scope(), addr2), port2, ptype)); if (options & NO_ADDR2) { if (options & (NO_PORT2|NO_PORT2_FORCE)) { @@ -767,10 +768,13 @@ conversation_set_port2(conversation_t *conv, const guint32 port) void conversation_set_addr2(conversation_t *conv, const address *addr) { - DISSECTOR_ASSERT_HINT(!(conv->options & CONVERSATION_TEMPLATE), - "Use the conversation_create_from_template function when the CONVERSATION_TEMPLATE bit is set in the options mask"); + char* addr_str; + DISSECTOR_ASSERT_HINT(!(conv->options & CONVERSATION_TEMPLATE), + "Use the conversation_create_from_template function when the CONVERSATION_TEMPLATE bit is set in the options mask"); - DPRINT(("called for addr=%s",ep_address_to_str(addr))); + addr_str = address_to_str(NULL, addr); + DPRINT(("called for addr=%s", addr_str)); + wmem_free(NULL, addr_str); /* * If the address 2 value is not wildcarded, don't set it. @@ -1330,8 +1334,8 @@ find_or_create_conversation(packet_info *pinfo) conversation_t *conv=NULL; DPRINT(("called for frame #%d: %s:%d -> %s:%d (ptype=%d)", - pinfo->fd->num, ep_address_to_str(&pinfo->src), pinfo->srcport, - ep_address_to_str(&pinfo->dst), pinfo->destport, pinfo->ptype)); + pinfo->fd->num, address_to_str(wmem_packet_scope(), &pinfo->src), pinfo->srcport, + address_to_str(wmem_packet_scope(), &pinfo->dst), pinfo->destport, pinfo->ptype)); DINDENT(); /* Have we seen this conversation before? */ diff --git a/epan/conversation_table.c b/epan/conversation_table.c index 52e5bf43c8..283c4e89cc 100644 --- a/epan/conversation_table.c +++ b/epan/conversation_table.c @@ -406,24 +406,26 @@ ct_port_to_str(port_type ptype, guint32 port) const char *get_conversation_filter(conv_item_t *conv_item, conv_direction_e direction) { - char *sport, *dport; + char *sport, *dport, *src_addr, *dst_addr; const char *str = "INVALID"; sport = ct_port_to_str(conv_item->ptype, conv_item->src_port); dport = ct_port_to_str(conv_item->ptype, conv_item->dst_port); + src_addr = address_to_str(NULL, &conv_item->src_address); + dst_addr = address_to_str(NULL, &conv_item->dst_address); switch(direction){ case CONV_DIR_A_TO_FROM_B: /* A <-> B */ str = ep_strdup_printf("%s==%s%s%s%s%s && %s==%s%s%s%s%s", conversation_get_filter_name(conv_item, CONV_FT_ANY_ADDRESS), - ep_address_to_str(&conv_item->src_address), + src_addr, sport?" && ":"", sport?conversation_get_filter_name(conv_item, CONV_FT_ANY_PORT):"", sport?"==":"", sport?sport:"", conversation_get_filter_name(conv_item, CONV_FT_ANY_ADDRESS), - ep_address_to_str(&conv_item->dst_address), + dst_addr, dport?" && ":"", dport?conversation_get_filter_name(conv_item, CONV_FT_ANY_PORT):"", dport?"==":"", @@ -434,13 +436,13 @@ const char *get_conversation_filter(conv_item_t *conv_item, conv_direction_e dir /* A --> B */ str = ep_strdup_printf("%s==%s%s%s%s%s && %s==%s%s%s%s%s", conversation_get_filter_name(conv_item, CONV_FT_SRC_ADDRESS), - ep_address_to_str(&conv_item->src_address), + src_addr, sport?" && ":"", sport?conversation_get_filter_name(conv_item, CONV_FT_SRC_PORT):"", sport?"==":"", sport?sport:"", conversation_get_filter_name(conv_item, CONV_FT_DST_ADDRESS), - ep_address_to_str(&conv_item->dst_address), + dst_addr, dport?" && ":"", dport?conversation_get_filter_name(conv_item, CONV_FT_DST_PORT):"", dport?"==":"", @@ -451,13 +453,13 @@ const char *get_conversation_filter(conv_item_t *conv_item, conv_direction_e dir /* A <-- B */ str = ep_strdup_printf("%s==%s%s%s%s%s && %s==%s%s%s%s%s", conversation_get_filter_name(conv_item, CONV_FT_DST_ADDRESS), - ep_address_to_str(&conv_item->src_address), + src_addr, sport?" && ":"", sport?conversation_get_filter_name(conv_item, CONV_FT_DST_PORT):"", sport?"==":"", sport?sport:"", conversation_get_filter_name(conv_item, CONV_FT_SRC_ADDRESS), - ep_address_to_str(&conv_item->dst_address), + dst_addr, dport?" && ":"", dport?conversation_get_filter_name(conv_item, CONV_FT_SRC_PORT):"", dport?"==":"", @@ -468,7 +470,7 @@ const char *get_conversation_filter(conv_item_t *conv_item, conv_direction_e dir /* A <-> ANY */ str = ep_strdup_printf("%s==%s%s%s%s%s", conversation_get_filter_name(conv_item, CONV_FT_ANY_ADDRESS), - ep_address_to_str(&conv_item->src_address), + src_addr, sport?" && ":"", sport?conversation_get_filter_name(conv_item, CONV_FT_ANY_PORT):"", sport?"==":"", @@ -479,7 +481,7 @@ const char *get_conversation_filter(conv_item_t *conv_item, conv_direction_e dir /* A --> ANY */ str = ep_strdup_printf("%s==%s%s%s%s%s", conversation_get_filter_name(conv_item, CONV_FT_SRC_ADDRESS), - ep_address_to_str(&conv_item->src_address), + src_addr, sport?" && ":"", sport?conversation_get_filter_name(conv_item, CONV_FT_SRC_PORT):"", sport?"==":"", @@ -490,7 +492,7 @@ const char *get_conversation_filter(conv_item_t *conv_item, conv_direction_e dir /* A <-- ANY */ str = ep_strdup_printf("%s==%s%s%s%s%s", conversation_get_filter_name(conv_item, CONV_FT_DST_ADDRESS), - ep_address_to_str(&conv_item->src_address), + src_addr, sport?" && ":"", sport?conversation_get_filter_name(conv_item, CONV_FT_DST_PORT):"", sport?"==":"", @@ -501,7 +503,7 @@ const char *get_conversation_filter(conv_item_t *conv_item, conv_direction_e dir /* ANY <-> B */ str = ep_strdup_printf("%s==%s%s%s%s%s", conversation_get_filter_name(conv_item, CONV_FT_ANY_ADDRESS), - ep_address_to_str(&conv_item->dst_address), + dst_addr, dport?" && ":"", dport?conversation_get_filter_name(conv_item, CONV_FT_ANY_PORT):"", dport?"==":"", @@ -512,7 +514,7 @@ const char *get_conversation_filter(conv_item_t *conv_item, conv_direction_e dir /* ANY <-- B */ str = ep_strdup_printf("%s==%s%s%s%s%s", conversation_get_filter_name(conv_item, CONV_FT_SRC_ADDRESS), - ep_address_to_str(&conv_item->dst_address), + dst_addr, dport?" && ":"", dport?conversation_get_filter_name(conv_item, CONV_FT_SRC_PORT):"", dport?"==":"", @@ -523,7 +525,7 @@ const char *get_conversation_filter(conv_item_t *conv_item, conv_direction_e dir /* ANY --> B */ str = ep_strdup_printf("%s==%s%s%s%s%s", conversation_get_filter_name(conv_item, CONV_FT_DST_ADDRESS), - ep_address_to_str(&conv_item->dst_address), + dst_addr, dport?" && ":"", dport?conversation_get_filter_name(conv_item, CONV_FT_DST_PORT):"", dport?"==":"", @@ -535,24 +537,29 @@ const char *get_conversation_filter(conv_item_t *conv_item, conv_direction_e dir } g_free(sport); g_free(dport); + wmem_free(NULL, src_addr); + wmem_free(NULL, dst_addr); return str; } const char *get_hostlist_filter(hostlist_talker_t *host) { - char *sport; + char *sport, *src_addr; const char *str; sport=ct_port_to_str(host->ptype, host->port); + src_addr = address_to_str(NULL, &host->myaddress); str = g_strdup_printf("%s==%s%s%s%s%s", hostlist_get_filter_name(host, CONV_FT_ANY_ADDRESS), - ep_address_to_str(&host->myaddress), + src_addr, sport?" && ":"", sport?hostlist_get_filter_name(host, CONV_FT_ANY_PORT):"", sport?"==":"", sport?sport:""); + g_free(sport); + wmem_free(NULL, src_addr); return str; } diff --git a/epan/gcp.c b/epan/gcp.c index 65797d30bf..5937ce8c3a 100644 --- a/epan/gcp.c +++ b/epan/gcp.c @@ -146,8 +146,8 @@ gcp_msg_t* gcp_msg(packet_info* pinfo, int o, gboolean keep_persistent_data) { break; default: /* XXX: heuristic and error prone */ - m->hi_addr = g_str_hash(ep_address_to_str(hi_addr)); - m->lo_addr = g_str_hash(ep_address_to_str(lo_addr)); + m->hi_addr = g_str_hash(address_to_str(wmem_packet_scope(), hi_addr)); + m->lo_addr = g_str_hash(address_to_str(wmem_packet_scope(), lo_addr)); break; } diff --git a/epan/proto.c b/epan/proto.c index 0b54c31306..a7722b3dd4 100644 --- a/epan/proto.c +++ b/epan/proto.c @@ -6003,6 +6003,7 @@ proto_item_fill_label(field_info *fi, gchar *label_str) guint32 n_addr; /* network-order IPv4 address */ const gchar *name; address addr; + char *addr_str; char *tmp; if (!fi) { @@ -6126,9 +6127,10 @@ proto_item_fill_label(field_info *fi, gchar *label_str) addr.len = AX25_ADDR_LEN; addr.data = (guint8 *)fvalue_get(&fi->value); + addr_str = (char*)address_to_str(NULL, &addr); g_snprintf(label_str, ITEM_LABEL_LENGTH, - "%s: %s", hfinfo->name, - ep_address_to_str( &addr )); + "%s: %s", hfinfo->name, addr_str); + wmem_free(NULL, addr_str); break; case FT_VINES: @@ -6136,9 +6138,10 @@ proto_item_fill_label(field_info *fi, gchar *label_str) addr.len = VINES_ADDR_LEN; addr.data = (guint8 *)fvalue_get(&fi->value); + addr_str = (char*)address_to_str(NULL, &addr); g_snprintf(label_str, ITEM_LABEL_LENGTH, - "%s: %s", hfinfo->name, - ep_address_to_str( &addr )); + "%s: %s", hfinfo->name, addr_str); + wmem_free(NULL, addr_str); break; case FT_ETHER: @@ -6148,9 +6151,10 @@ proto_item_fill_label(field_info *fi, gchar *label_str) addr.len = 6; addr.data = bytes; + addr_str = (char*)address_to_str(NULL, &addr); label_fill_descr(label_str, 0, hfinfo, - get_ether_name(bytes), - ep_address_to_str( &addr )); + get_ether_name(bytes), addr_str); + wmem_free(NULL, addr_str); break; case FT_IPv4: @@ -6161,9 +6165,10 @@ proto_item_fill_label(field_info *fi, gchar *label_str) addr.len = 4; addr.data = &n_addr; + addr_str = (char*)address_to_str(NULL, &addr); label_fill_descr(label_str, 0, hfinfo, - get_hostname(n_addr), - ep_address_to_str(&addr )); + get_hostname(n_addr), addr_str); + wmem_free(NULL, addr_str); break; case FT_IPv6: @@ -6173,9 +6178,11 @@ proto_item_fill_label(field_info *fi, gchar *label_str) addr.len = 16; addr.data = bytes; + addr_str = (char*)address_to_str(NULL, &addr); label_fill_descr(label_str, 0, hfinfo, get_hostname6((struct e_in6_addr *)bytes), - ep_address_to_str(&addr)); + addr_str); + wmem_free(NULL, addr_str); break; case FT_FCWWN: @@ -6183,9 +6190,10 @@ proto_item_fill_label(field_info *fi, gchar *label_str) addr.len = FCWWN_ADDR_LEN; addr.data = (guint8 *)fvalue_get(&fi->value); + addr_str = (char*)address_to_str(NULL, &addr); g_snprintf(label_str, ITEM_LABEL_LENGTH, - "%s: %s", hfinfo->name, - ep_address_to_str( &addr )); + "%s: %s", hfinfo->name, addr_str); + wmem_free(NULL, addr_str); break; case FT_GUID: diff --git a/epan/to_str.c b/epan/to_str.c index 69d741ecff..20e965a717 100644 --- a/epan/to_str.c +++ b/epan/to_str.c @@ -1088,7 +1088,7 @@ decode_numeric_bitfield(const guint64 val, const guint64 mask, const int width, /* This function is very fast and this function is called a lot. - XXX update the ep_address_to_str stuff to use this function. + XXX update the address_to_str stuff to use this function. */ void ip_to_str_buf(const guint8 *ad, gchar *buf, const int buf_len) diff --git a/epan/to_str.h b/epan/to_str.h index be2de0f0a1..f7a0934631 100644 --- a/epan/to_str.h +++ b/epan/to_str.h @@ -52,7 +52,6 @@ extern "C" { struct e_in6_addr; WS_DLL_PUBLIC gchar* address_to_str(wmem_allocator_t *scope, const address *addr); -WS_DLL_PUBLIC gchar* ep_address_to_str(const address *); WS_DLL_PUBLIC void address_to_str_buf(const address *addr, gchar *buf, int buf_len); WS_DLL_PUBLIC const gchar* tvb_ether_to_str(tvbuff_t *tvb, const gint offset); WS_DLL_PUBLIC const gchar* tvb_ip_to_str(tvbuff_t *tvb, const gint offset); diff --git a/plugins/stats_tree/pinfo_stats_tree.c b/plugins/stats_tree/pinfo_stats_tree.c index 40bf5962f4..f09325162f 100644 --- a/plugins/stats_tree/pinfo_stats_tree.c +++ b/plugins/stats_tree/pinfo_stats_tree.c @@ -112,10 +112,10 @@ static void ip_hosts_stats_tree_init(stats_tree *st) { st_node_ip = stats_tree_create_node(st, st_str_ip, 0, TRUE); } -static int ip_hosts_stats_tree_packet(stats_tree *st , packet_info *pinfo, epan_dissect_t *edt _U_, const void *p _U_) { +static int ip_hosts_stats_tree_packet(stats_tree *st, packet_info *pinfo, epan_dissect_t *edt _U_, const void *p _U_) { tick_stat_node(st, st_str_ip, 0, FALSE); - tick_stat_node(st, ep_address_to_str(&pinfo->net_src), st_node_ip, FALSE); - tick_stat_node(st, ep_address_to_str(&pinfo->net_dst), st_node_ip, FALSE); + tick_stat_node(st, address_to_str(pinfo->pool, &pinfo->net_src), st_node_ip, FALSE); + tick_stat_node(st, address_to_str(pinfo->pool, &pinfo->net_dst), st_node_ip, FALSE); return 1; } @@ -138,13 +138,13 @@ static void ip_srcdst_stats_tree_init(stats_tree *st) { stat_node_set_flags(st, st_str_ip_dst, 0, FALSE, ST_FLG_DEF_NOEXPAND); } -static int ip_srcdst_stats_tree_packet(stats_tree *st , packet_info *pinfo, epan_dissect_t *edt _U_, const void *p _U_) { +static int ip_srcdst_stats_tree_packet(stats_tree *st, packet_info *pinfo, epan_dissect_t *edt _U_, const void *p _U_) { /* update source branch */ tick_stat_node(st, st_str_ip_src, 0, FALSE); - tick_stat_node(st, ep_address_to_str(&pinfo->net_src), st_node_ip_src, FALSE); + tick_stat_node(st, address_to_str(pinfo->pool, &pinfo->net_src), st_node_ip_src, FALSE); /* update destination branch */ tick_stat_node(st, st_str_ip_dst, 0, FALSE); - tick_stat_node(st, ep_address_to_str(&pinfo->net_dst), st_node_ip_dst, FALSE); + tick_stat_node(st, address_to_str(pinfo->pool, &pinfo->net_dst), st_node_ip_dst, FALSE); return 1; } @@ -215,7 +215,7 @@ static int dsts_stats_tree_packet(stats_tree *st, packet_info *pinfo, epan_disse tick_stat_node(st, st_str_dsts, 0, FALSE); - ip_dst_node = tick_stat_node(st, ep_address_to_str(&pinfo->net_src), st_node_dsts, TRUE); + ip_dst_node = tick_stat_node(st, address_to_str(pinfo->pool, &pinfo->net_src), st_node_dsts, TRUE); protocol_node = tick_stat_node(st,port_type_to_str(pinfo->ptype),ip_dst_node,TRUE); diff --git a/tools/checkAPIs.pl b/tools/checkAPIs.pl index caec56de52..a55cacded3 100755 --- a/tools/checkAPIs.pl +++ b/tools/checkAPIs.pl @@ -169,7 +169,6 @@ my %APIs = ( 'ep_stack_push', 'ep_stack_pop', 'ep_stack_peek', - 'ep_address_to_str', 'se_alloc', 'se_new', 'se_alloc0', diff --git a/ui/cli/tap-diameter-avp.c b/ui/cli/tap-diameter-avp.c index 16a3de0ffe..5b43a8c7c7 100644 --- a/ui/cli/tap-diameter-avp.c +++ b/ui/cli/tap-diameter-avp.c @@ -186,7 +186,7 @@ diameteravp_packet(void *pds, packet_info *pinfo, epan_dissect_t *edt _U_, const } /* Output frame data.*/ printf("frame='%d' time='%f' src='%s' srcport='%d' dst='%s' dstport='%d' proto='diameter' msgnr='%d' is_request='%d' cmd='%d' req_frame='%d' ans_frame='%d' resp_time='%f' ", - pinfo->fd->num, nstime_to_sec(&pinfo->fd->abs_ts), ep_address_to_str(&pinfo->src), pinfo->srcport, ep_address_to_str(&pinfo->dst), pinfo->destport, ds->diammsg_toprocess, is_request, cmd_code, req_frame, ans_frame, resp_time); + pinfo->fd->num, nstime_to_sec(&pinfo->fd->abs_ts), address_to_str(pinfo->pool, &pinfo->src), pinfo->srcport, address_to_str(pinfo->pool, &pinfo->dst), pinfo->destport, ds->diammsg_toprocess, is_request, cmd_code, req_frame, ans_frame, resp_time); /* Visit selected nodes of one diameter message.*/ tree_traverse_pre_order(current, diam_tree_to_csv, &ds); /* End of message.*/ diff --git a/ui/cli/tap-sctpchunkstat.c b/ui/cli/tap-sctpchunkstat.c index 571b9f4a40..7e9d8a65e1 100644 --- a/ui/cli/tap-sctpchunkstat.c +++ b/ui/cli/tap-sctpchunkstat.c @@ -184,6 +184,7 @@ sctpstat_draw(void *phs) { sctpstat_t *hs = (sctpstat_t *)phs; sctp_ep_t *list = hs->ep_list, *tmp; + char *src_addr, *dst_addr; printf("-------------------------------------------- SCTP Statistics --------------------------------------------------------------------------\n"); printf("| Total packets RX/TX %u\n", hs->number_of_packets); @@ -192,19 +193,23 @@ sctpstat_draw(void *phs) printf("---------------------------------------------------------------------------------------------------------------------------------------\n"); for (tmp = list; tmp; tmp = tmp->next) { + src_addr = (char*)address_to_str(NULL, &tmp->src); + dst_addr = (char*)address_to_str(NULL, &tmp->dst); printf("|%15s|%5u|%15s|%5u|%8u|%8u|%8u|%8u|%8u|%8u|%8u|%8u|%8u|%8u|\n", - ep_address_to_str(&tmp->src), tmp->sport, - ep_address_to_str(&tmp->dst), tmp->dport, - tmp->chunk_count[SCTP_DATA_CHUNK_ID], - tmp->chunk_count[SCTP_SACK_CHUNK_ID], - tmp->chunk_count[SCTP_HEARTBEAT_CHUNK_ID], - tmp->chunk_count[SCTP_HEARTBEAT_ACK_CHUNK_ID], - tmp->chunk_count[SCTP_INIT_CHUNK_ID], - tmp->chunk_count[SCTP_INIT_ACK_CHUNK_ID], - tmp->chunk_count[SCTP_COOKIE_ECHO_CHUNK_ID], - tmp->chunk_count[SCTP_COOKIE_ACK_CHUNK_ID], - tmp->chunk_count[SCTP_ABORT_CHUNK_ID], - tmp->chunk_count[SCTP_ERROR_CHUNK_ID]); + src_addr, tmp->sport, + dst_addr, tmp->dport, + tmp->chunk_count[SCTP_DATA_CHUNK_ID], + tmp->chunk_count[SCTP_SACK_CHUNK_ID], + tmp->chunk_count[SCTP_HEARTBEAT_CHUNK_ID], + tmp->chunk_count[SCTP_HEARTBEAT_ACK_CHUNK_ID], + tmp->chunk_count[SCTP_INIT_CHUNK_ID], + tmp->chunk_count[SCTP_INIT_ACK_CHUNK_ID], + tmp->chunk_count[SCTP_COOKIE_ECHO_CHUNK_ID], + tmp->chunk_count[SCTP_COOKIE_ACK_CHUNK_ID], + tmp->chunk_count[SCTP_ABORT_CHUNK_ID], + tmp->chunk_count[SCTP_ERROR_CHUNK_ID]); + wmem_free(NULL, src_addr); + wmem_free(NULL, dst_addr); } printf("---------------------------------------------------------------------------------------------------------------------------------------\n"); } diff --git a/ui/gtk/capture_dlg.c b/ui/gtk/capture_dlg.c index 8777b7271a..578aed01ff 100644 --- a/ui/gtk/capture_dlg.c +++ b/ui/gtk/capture_dlg.c @@ -1219,6 +1219,7 @@ insert_new_rows(GList *list) GtkTreeModel *model; link_row *linkr = NULL; address addr_str; + char* temp_addr_str = NULL; if_cb = (GtkTreeView *) g_object_get_data(G_OBJECT(cap_open_w), E_CAP_IFACE_KEY); model = gtk_tree_view_get_model(if_cb); @@ -1291,16 +1292,21 @@ insert_new_rows(GList *list) switch (addr->ifat_type) { case IF_AT_IPv4: SET_ADDRESS(&addr_str, AT_IPv4, 4, &addr->addr.ip4_addr); - g_string_append(ip_str, ep_address_to_str(&addr_str)); + temp_addr_str = (char*)address_to_str(NULL, &addr_str); + g_string_append(ip_str, temp_addr_str); break; case IF_AT_IPv6: SET_ADDRESS(&addr_str, AT_IPv6, 16, addr->addr.ip6_addr); - g_string_append(ip_str, ep_address_to_str(&addr_str)); + temp_addr_str = (char*)address_to_str(NULL, &addr_str); + g_string_append(ip_str, temp_addr_str); break; default: /* In case we add non-IP addresses */ + temp_addr_str = NULL; break; } + + wmem_free(NULL, temp_addr_str); } /* for curr_addr */ linktype_count = 0; device.links = NULL; diff --git a/ui/gtk/capture_if_dlg.c b/ui/gtk/capture_if_dlg.c index 0bbf695a80..9188f85577 100644 --- a/ui/gtk/capture_if_dlg.c +++ b/ui/gtk/capture_if_dlg.c @@ -468,7 +468,7 @@ set_ip_addr_label(GSList *addr_list, GtkWidget *ip_lb, guint selected_ip_addr) GSList *curr_addr; if_addr_t *addr; address addr_address; - const gchar *addr_str = NULL; + char *addr_str = NULL; curr_addr = g_slist_nth(addr_list, selected_ip_addr); if (curr_addr) { @@ -477,12 +477,12 @@ set_ip_addr_label(GSList *addr_list, GtkWidget *ip_lb, guint selected_ip_addr) case IF_AT_IPv4: SET_ADDRESS(&addr_address, AT_IPv4, 4, &addr->addr.ip4_addr); - addr_str = ep_address_to_str(&addr_address); + addr_str = (char*)address_to_str(NULL, &addr_address); break; case IF_AT_IPv6: SET_ADDRESS(&addr_address, AT_IPv6, 16, addr->addr.ip6_addr); - addr_str = ep_address_to_str(&addr_address); + addr_str = (char*)address_to_str(NULL, &addr_address); break; default: @@ -496,6 +496,7 @@ set_ip_addr_label(GSList *addr_list, GtkWidget *ip_lb, guint selected_ip_addr) } else { gtk_label_set_text(GTK_LABEL(ip_lb), "none"); } + wmem_free(NULL, addr_str); g_object_set_data(G_OBJECT(ip_lb), CAPTURE_IF_SELECTED_IP_ADDR, GINT_TO_POINTER(selected_ip_addr)); return addr_str; diff --git a/ui/gtk/compare_stat.c b/ui/gtk/compare_stat.c index d764c5566c..bc3f15181e 100644 --- a/ui/gtk/compare_stat.c +++ b/ui/gtk/compare_stat.c @@ -523,6 +523,7 @@ comparestat_draw(void *arg) const gchar *statis_string; frame_info *fInfo; guint32 first_file_amount, second_file_amount; + char* addr_str; /* initial steps, clear all data before start*/ cs->zebra_time.secs=0; @@ -572,7 +573,9 @@ comparestat_draw(void *arg) if(TTL_method&&cs->ip_ttl_list->len!=0){ g_string_printf(filter_str, "%s %i %s %i", "ip.ttl ==", g_array_index(cs->ip_ttl_list, guint8, 0), "|| ip.ttl ==", g_array_index(cs->ip_ttl_list, guint8, 1)); } else if(cs->eth_dst.len!=0&&cs->eth_src.len!=0){ - g_string_printf(filter_str, "%s %s %s %s", "eth.dst==", ep_address_to_str(&cs->eth_dst), "|| eth.dst==", ep_address_to_str(&cs->eth_src)); + addr_str = (char*)address_to_str(NULL, &cs->eth_dst); + g_string_printf(filter_str, "%s %s %s %s", "eth.dst==", addr_str, "|| eth.dst==", addr_str); + wmem_free(NULL, addr_str); } color_filters_set_tmp(COLOR_N, filter_str->str, FALSE); packet_list_colorize_packets(); diff --git a/ui/gtk/lbm_stream_dlg.c b/ui/gtk/lbm_stream_dlg.c index a8cb00763e..a443f7162f 100644 --- a/ui/gtk/lbm_stream_dlg.c +++ b/ui/gtk/lbm_stream_dlg.c @@ -85,6 +85,7 @@ static lbmc_stream_dlg_info_t * global_stream_dialog_info = NULL; static gchar * lbmc_stream_dlg_format_endpoint_ep(const lbm_uim_stream_endpoint_t * endpoint) { gchar * buf = NULL; + char* addr_str; if (endpoint->type == lbm_uim_instance_stream) { @@ -92,11 +93,13 @@ static gchar * lbmc_stream_dlg_format_endpoint_ep(const lbm_uim_stream_endpoint_ } else { + addr_str = (char*)address_to_str(NULL, &(endpoint->stream_info.dest.addr)); buf = ep_strdup_printf( "%" G_GUINT32_FORMAT ":%s:%" G_GUINT16_FORMAT, endpoint->stream_info.dest.domain, - ep_address_to_str(&(endpoint->stream_info.dest.addr)), + addr_str, endpoint->stream_info.dest.port); + wmem_free(NULL, addr_str); } return (buf); } @@ -667,8 +670,8 @@ static gboolean lbmc_stream_dlg_tap_packet(void * tap_data, packet_info * pinfo, substream = (lbmc_stream_dlg_substream_entry_t *)g_malloc(sizeof(lbmc_stream_dlg_substream_entry_t)); substream->substream_id = tapinfo->substream_id; - substream->endpoint_a = wmem_strdup_printf(wmem_file_scope(), "%s:%" G_GUINT16_FORMAT, ep_address_to_str(&(pinfo->src)), (guint16)pinfo->srcport); - substream->endpoint_b = wmem_strdup_printf(wmem_file_scope(), "%s:%" G_GUINT16_FORMAT, ep_address_to_str(&(pinfo->dst)), (guint16)pinfo->destport); + substream->endpoint_a = wmem_strdup_printf(wmem_file_scope(), "%s:%" G_GUINT16_FORMAT, address_to_str(pinfo->pool, &(pinfo->src)), (guint16)pinfo->srcport); + substream->endpoint_b = wmem_strdup_printf(wmem_file_scope(), "%s:%" G_GUINT16_FORMAT, address_to_str(pinfo->pool, &(pinfo->dst)), (guint16)pinfo->destport); substream->first_frame = (guint32)(~0); substream->last_frame = 0; substream->messages = 0; diff --git a/ui/gtk/lbm_uimflow_dlg.c b/ui/gtk/lbm_uimflow_dlg.c index 6473477441..10ced5da84 100644 --- a/ui/gtk/lbm_uimflow_dlg.c +++ b/ui/gtk/lbm_uimflow_dlg.c @@ -190,10 +190,10 @@ static int lbmc_uim_flow_graph_add_to_graph(packet_info * pinfo, const lbm_uim_s { item->comment = g_strdup_printf("%" G_GUINT32_FORMAT ":%s:%" G_GUINT16_FORMAT " <-> %" G_GUINT32_FORMAT ":%s:%" G_GUINT16_FORMAT " [%" G_GUINT64_FORMAT "]", epa.stream_info.dest.domain, - ep_address_to_str(&(epa.stream_info.dest.addr)), + address_to_str(pinfo->pool, &(epa.stream_info.dest.addr)), epa.stream_info.dest.port, epb.stream_info.dest.domain, - ep_address_to_str(&(epb.stream_info.dest.addr)), + address_to_str(pinfo->pool, &(epb.stream_info.dest.addr)), epb.stream_info.dest.port, stream_info->channel); } diff --git a/ui/gtk/mcast_stream_dlg.c b/ui/gtk/mcast_stream_dlg.c index 3bdb17eece..e9c6a1312a 100644 --- a/ui/gtk/mcast_stream_dlg.c +++ b/ui/gtk/mcast_stream_dlg.c @@ -136,6 +136,7 @@ mcaststream_on_filter(GtkButton *button _U_, gpointer user_data _U_) { gchar *filter_string_fwd; gchar ip_version[3]; + char *src_addr, *dst_addr; if (selected_stream_fwd == NULL) return; @@ -145,17 +146,22 @@ mcaststream_on_filter(GtkButton *button _U_, gpointer user_data _U_) } else { ip_version[0] = '\0'; } - filter_string_fwd = g_strdup_printf( + + src_addr = (char*)address_to_str(NULL, &(selected_stream_fwd->src_addr)); + dst_addr = (char*)address_to_str(NULL, &(selected_stream_fwd->dest_addr)); + filter_string_fwd = wmem_strdup_printf(NULL, "(ip%s.src==%s && udp.srcport==%u && ip%s.dst==%s && udp.dstport==%u)", ip_version, - ep_address_to_str(&(selected_stream_fwd->src_addr)), + src_addr, selected_stream_fwd->src_port, ip_version, - ep_address_to_str(&(selected_stream_fwd->dest_addr)), + dst_addr, selected_stream_fwd->dest_port); gtk_entry_set_text(GTK_ENTRY(main_display_filter_widget), filter_string_fwd); - g_free(filter_string_fwd); + wmem_free(NULL, filter_string_fwd); + wmem_free(NULL, src_addr); + wmem_free(NULL, dst_addr); #if 0 main_filter_packets(&cfile, filter_string, FALSE); diff --git a/ui/gtk/packet_win.c b/ui/gtk/packet_win.c index 9c193f0cfa..78c82b66b7 100644 --- a/ui/gtk/packet_win.c +++ b/ui/gtk/packet_win.c @@ -510,12 +510,15 @@ finfo_ipv4_output(GtkSpinButton *spinbutton, gpointer user_data _U_) GtkAdjustment *adj; guint32 value; address addr; + char* addr_str; adj = gtk_spin_button_get_adjustment(spinbutton); value = (guint32) gtk_adjustment_get_value(adj); value = GUINT32_TO_BE(value); SET_ADDRESS(&addr, AT_IPv4, 4, &value); - gtk_entry_set_text(GTK_ENTRY(spinbutton), ep_address_to_str(&addr)); /* XXX, can we ep_alloc() inside gui? */ + addr_str = (char*)address_to_str(NULL, &addr); + gtk_entry_set_text(GTK_ENTRY(spinbutton), addr_str); + wmem_free(NULL, addr_str); return TRUE; } diff --git a/ui/gtk/rtp_stream_dlg.c b/ui/gtk/rtp_stream_dlg.c index 89d1fb9729..9242bb4208 100644 --- a/ui/gtk/rtp_stream_dlg.c +++ b/ui/gtk/rtp_stream_dlg.c @@ -380,6 +380,7 @@ rtpstream_on_filter(GtkButton *button _U_, gpointer user_data _U_) gchar *filter_string_fwd = NULL; gchar *filter_string_rev = NULL; gchar ip_version[3]; + char *src_addr, *dst_addr; if (selected_stream_fwd==NULL && selected_stream_rev==NULL) return; @@ -391,17 +392,21 @@ rtpstream_on_filter(GtkButton *button _U_, gpointer user_data _U_) } else { ip_version[0] = '\0'; } + src_addr = (char*)address_to_str(NULL, &(selected_stream_fwd->src_addr)); + dst_addr = (char*)address_to_str(NULL, &(selected_stream_fwd->dest_addr)); filter_string_fwd = g_strdup_printf( "(ip%s.src==%s && udp.srcport==%u && ip%s.dst==%s && udp.dstport==%u && rtp.ssrc==0x%X)", ip_version, - ep_address_to_str(&(selected_stream_fwd->src_addr)), + src_addr, selected_stream_fwd->src_port, ip_version, - ep_address_to_str(&(selected_stream_fwd->dest_addr)), + dst_addr, selected_stream_fwd->dest_port, selected_stream_fwd->ssrc); filter_string = filter_string_fwd; + wmem_free(NULL, src_addr); + wmem_free(NULL, dst_addr); } if (selected_stream_rev) @@ -411,17 +416,21 @@ rtpstream_on_filter(GtkButton *button _U_, gpointer user_data _U_) } else { ip_version[0] = '\0'; } + src_addr = (char*)address_to_str(NULL, &(selected_stream_rev->src_addr)); + dst_addr = (char*)address_to_str(NULL, &(selected_stream_rev->dest_addr)); filter_string_rev = g_strdup_printf( "(ip%s.src==%s && udp.srcport==%u && ip%s.dst==%s && udp.dstport==%u && rtp.ssrc==0x%X)", ip_version, - ep_address_to_str(&(selected_stream_rev->src_addr)), + src_addr, selected_stream_rev->src_port, ip_version, - ep_address_to_str(&(selected_stream_rev->dest_addr)), + dst_addr, selected_stream_rev->dest_port, selected_stream_rev->ssrc); filter_string = filter_string_rev; + wmem_free(NULL, src_addr); + wmem_free(NULL, dst_addr); } if ((selected_stream_fwd) && (selected_stream_rev)) diff --git a/ui/gtk/sctp_assoc_analyse.c b/ui/gtk/sctp_assoc_analyse.c index 3ca666675c..5b787779cc 100644 --- a/ui/gtk/sctp_assoc_analyse.c +++ b/ui/gtk/sctp_assoc_analyse.c @@ -261,7 +261,7 @@ update_analyse_dlg(struct sctp_analyse *u_data) list = g_list_first(u_data->assoc->addr1); while (list) { - gchar field[1][MAX_ADDRESS_LEN]; + gchar *field; address *store; GtkListStore *list_store; @@ -269,14 +269,19 @@ update_analyse_dlg(struct sctp_analyse *u_data) if (store->type != AT_NONE) { if ((store->type == AT_IPv4) || (store->type == AT_IPv6)) { - g_snprintf(field[0], 40, "%s", ep_address_to_str(store)); + field = (gchar*)address_to_str(NULL, store); + } + else + { + field = NULL; } list_store = GTK_LIST_STORE( gtk_tree_view_get_model(GTK_TREE_VIEW(u_data->analyse_nb->page2->clist))); /* Get store */ gtk_list_store_insert_with_values( list_store , NULL, G_MAXINT, - 0, field[0], -1); + 0, field, -1); + wmem_free(NULL, field); } list = g_list_next(list); } @@ -340,7 +345,7 @@ update_analyse_dlg(struct sctp_analyse *u_data) list = g_list_first(u_data->assoc->addr2); while (list) { - gchar field[1][MAX_ADDRESS_LEN]; + gchar *field; address *store; GtkListStore *list_store; @@ -348,14 +353,19 @@ update_analyse_dlg(struct sctp_analyse *u_data) if (store->type != AT_NONE) { if ((store->type == AT_IPv4) || (store->type == AT_IPv6)) { - g_snprintf(field[0], 40, "%s", ep_address_to_str(store)); + field = (gchar*)address_to_str(NULL, store); + } + else + { + field = NULL; } list_store = GTK_LIST_STORE( gtk_tree_view_get_model(GTK_TREE_VIEW(u_data->analyse_nb->page3->clist))); /* Get store */ gtk_list_store_insert_with_values( list_store , NULL, G_MAXINT, - 0, field[0], -1); + 0, field, -1); + wmem_free(NULL, field); } list = g_list_next(list); } @@ -451,79 +461,91 @@ sctp_set_filter(GtkButton *button _U_, struct sctp_analyse *u_data) struct sockaddr_in *infosrc; struct sockaddr_in *infodst; address addr; + char *addr_str; srclist = g_list_first(selected_stream->addr1); infosrc = (struct sockaddr_in *)(srclist->data); SET_ADDRESS(&addr, AT_IPv4, 4, &(infosrc->sin_addr.s_addr)); + addr_str = (char*)address_to_str(NULL, &addr); gstring = g_string_new(g_strdup_printf( "((sctp.srcport==%u && sctp.dstport==%u && (ip.src==%s", selected_stream->port1, selected_stream->port2, - ep_address_to_str(&addr))); + addr_str)); srclist = g_list_next(srclist); + wmem_free(NULL, addr_str); while (srclist) { infosrc = (struct sockaddr_in *)(srclist->data); SET_ADDRESS(&addr, AT_IPv4, 4, &(infosrc->sin_addr.s_addr)); - str = g_strdup_printf("|| ip.src==%s", - ep_address_to_str(&addr)); + addr_str = (char*)address_to_str(NULL, &addr); + str = g_strdup_printf("|| ip.src==%s", addr_str); g_string_append(gstring, str); srclist = g_list_next(srclist); + wmem_free(NULL, addr_str); } dstlist = g_list_first(selected_stream->addr2); infodst = (struct sockaddr_in *)(dstlist->data); SET_ADDRESS(&addr, AT_IPv4, 4, &(infodst->sin_addr.s_addr)); - str = g_strdup_printf(") && (ip.dst==%s", - ep_address_to_str(&addr)); + addr_str = (char*)address_to_str(NULL, &addr); + str = g_strdup_printf(") && (ip.dst==%s", addr_str); g_string_append(gstring, str); dstlist = g_list_next(dstlist); + wmem_free(NULL, addr_str); + while (dstlist) { infodst = (struct sockaddr_in *)(dstlist->data); SET_ADDRESS(&addr, AT_IPv4, 4, &(infodst->sin_addr.s_addr)); - str = g_strdup_printf("|| ip.dst==%s", - ep_address_to_str(&addr)); + addr_str = (char*)address_to_str(NULL, &addr); + str = g_strdup_printf("|| ip.dst==%s", addr_str); g_string_append(gstring, str); dstlist = g_list_next(dstlist); + wmem_free(NULL, addr_str); } srclist = g_list_first(selected_stream->addr1); infosrc = (struct sockaddr_in *)(srclist->data); SET_ADDRESS(&addr, AT_IPv4, 4, &(infosrc->sin_addr.s_addr)); + addr_str = (char*)address_to_str(NULL, &addr); str = g_strdup_printf(")) || (sctp.dstport==%u && sctp.srcport==%u && (ip.dst==%s", selected_stream->port1, selected_stream->port2, - ep_address_to_str(&addr)); + addr_str); g_string_append(gstring, str); srclist = g_list_next(srclist); + wmem_free(NULL, addr_str); while (srclist) { infosrc = (struct sockaddr_in *)(srclist->data); SET_ADDRESS(&addr, AT_IPv4, 4, &(infosrc->sin_addr.s_addr)); - str = g_strdup_printf("|| ip.dst==%s", - ep_address_to_str(&addr)); + addr_str = (char*)address_to_str(NULL, &addr); + str = g_strdup_printf("|| ip.dst==%s", addr_str); g_string_append(gstring, str); srclist = g_list_next(srclist); + wmem_free(NULL, addr_str); } dstlist = g_list_first(selected_stream->addr2); infodst = (struct sockaddr_in *)(dstlist->data); SET_ADDRESS(&addr, AT_IPv4, 4, &(infodst->sin_addr.s_addr)); - str = g_strdup_printf(") && (ip.src==%s", - ep_address_to_str(&addr)); + addr_str = (char*)address_to_str(NULL, &addr); + str = g_strdup_printf(") && (ip.src==%s", addr_str); g_string_append(gstring, str); dstlist = g_list_next(dstlist); + wmem_free(NULL, addr_str); while (dstlist) { infodst = (struct sockaddr_in *)(dstlist->data); SET_ADDRESS(&addr, AT_IPv4, 4, &(infodst->sin_addr.s_addr)); - str = g_strdup_printf("|| ip.src==%s", - ep_address_to_str(&addr)); + addr_str = (char*)address_to_str(NULL, &addr); + str = g_strdup_printf("|| ip.src==%s", addr_str); g_string_append(gstring, str); dstlist = g_list_next(dstlist); + wmem_free(NULL, addr_str); } str = g_strdup_printf(")))"); g_string_append(gstring, str); diff --git a/ui/gtk/sctp_chunk_stat.c b/ui/gtk/sctp_chunk_stat.c index 7581afe088..c2f0ac763a 100644 --- a/ui/gtk/sctp_chunk_stat.c +++ b/ui/gtk/sctp_chunk_stat.c @@ -177,6 +177,7 @@ sctpstat_draw(void *phs) sctp_ep_t* list = hs->ep_list, *tmp; GtkListStore *store; GtkTreeIter iter; + char *src_addr, *dst_addr; /* Now print Message and Reason Counter Table */ /* clear list before printing */ @@ -185,11 +186,14 @@ sctpstat_draw(void *phs) gtk_list_store_clear(store); for(tmp = list ; tmp ; tmp=tmp->next) { + src_addr = (char*)address_to_str(NULL, &tmp->src); + dst_addr = (char*)address_to_str(NULL, &tmp->dst); + gtk_list_store_append(store, &iter); gtk_list_store_set(store, &iter, - 0, ep_address_to_str(&tmp->src), + 0, src_addr, 1, tmp->sport, - 2, ep_address_to_str(&tmp->dst), + 2, dst_addr, 3, tmp->dport, 4, tmp->chunk_count[SCTP_DATA_CHUNK_ID], 5, tmp->chunk_count[SCTP_SACK_CHUNK_ID], @@ -209,6 +213,8 @@ sctpstat_draw(void *phs) 19, tmp->chunk_count[OTHER_CHUNKS_INDEX], -1 ); + wmem_free(NULL, src_addr); + wmem_free(NULL, dst_addr); } } diff --git a/ui/gtk/sctp_chunk_stat_dlg.c b/ui/gtk/sctp_chunk_stat_dlg.c index 1e6d4f9819..d9ddbf8057 100644 --- a/ui/gtk/sctp_chunk_stat_dlg.c +++ b/ui/gtk/sctp_chunk_stat_dlg.c @@ -483,14 +483,14 @@ add_to_clist(sctp_addr_chunk* sac) { GtkListStore *list_store = NULL; GtkTreeIter iter; - gchar field[1][MAX_ADDRESS_LEN]; + gchar *field; list_store = GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW (clist))); /* Get store */ if ((sac->addr->type == AT_IPv4) || (sac->addr->type == AT_IPv6)) { - g_snprintf(field[0], MAX_ADDRESS_LEN, "%s", ep_address_to_str(sac->addr)); + field = (gchar*)address_to_str(NULL, sac->addr); } else { - g_snprintf(field[0], MAX_ADDRESS_LEN, "%s", "NONE"); + field = wmem_strdup(NULL, "NONE"); } gtk_list_store_insert_with_values( list_store , &iter, G_MAXINT, @@ -518,6 +518,8 @@ add_to_clist(sctp_addr_chunk* sac) ASCONF_COLUMN, sac->addr_count[SCTP_ASCONF_CHUNK_ID], OTHERS_COLUMN, sac->addr_count[OTHER_CHUNKS_INDEX], -1); + + wmem_free(NULL, field); } void sctp_chunk_stat_dlg_update(struct sctp_udata* udata, unsigned int direction) diff --git a/ui/gtk/sctp_stat_dlg.c b/ui/gtk/sctp_stat_dlg.c index 26c0daf8a3..8adf75cb56 100644 --- a/ui/gtk/sctp_stat_dlg.c +++ b/ui/gtk/sctp_stat_dlg.c @@ -458,67 +458,82 @@ sctp_stat_on_filter(GtkButton *button _U_, gpointer user_data _U_) struct sockaddr_in *infosrc; struct sockaddr_in *infodst; address addr; + char *addr_str; srclist = g_list_first(selected_stream->addr1); infosrc = (struct sockaddr_in *)(srclist->data); SET_ADDRESS(&addr, AT_IPv4, 4, &(infosrc->sin_addr.s_addr)); + addr_str = (char*)address_to_str(NULL, &addr); gstring = g_string_new(g_strdup_printf("((sctp.srcport==%u && sctp.dstport==%u && (ip.src==%s", - selected_stream->port1, selected_stream->port2, - ep_address_to_str(&addr))); + selected_stream->port1, selected_stream->port2, addr_str)); srclist= g_list_next(srclist); + wmem_free(NULL, addr_str); while (srclist) { infosrc = (struct sockaddr_in *)(srclist->data); SET_ADDRESS(&addr, AT_IPv4, 4, &(infosrc->sin_addr.s_addr)); - str = g_strdup_printf("|| ip.src==%s", ep_address_to_str(&addr)); + addr_str = (char*)address_to_str(NULL, &addr); + str = g_strdup_printf("|| ip.src==%s", addr_str); g_string_append(gstring, str); + wmem_free(NULL, addr_str); srclist = g_list_next(srclist); } dstlist = g_list_first(selected_stream->addr2); infodst = (struct sockaddr_in *)(dstlist->data); SET_ADDRESS(&addr, AT_IPv4, 4, &(infodst->sin_addr.s_addr)); - str = g_strdup_printf(") && (ip.dst==%s", ep_address_to_str(&addr)); + addr_str = (char*)address_to_str(NULL, &addr); + str = g_strdup_printf(") && (ip.dst==%s", addr_str); g_string_append(gstring, str); + wmem_free(NULL, addr_str); dstlist = g_list_next(dstlist); while (dstlist) { infodst = (struct sockaddr_in *)(dstlist->data); SET_ADDRESS(&addr, AT_IPv4, 4, &(infodst->sin_addr.s_addr)); - str = g_strdup_printf("|| ip.dst==%s", ep_address_to_str(&addr)); + addr_str = (char*)address_to_str(NULL, &addr); + str = g_strdup_printf("|| ip.dst==%s", addr_str); g_string_append(gstring, str); + wmem_free(NULL, addr_str); dstlist = g_list_next(dstlist); } srclist = g_list_first(selected_stream->addr1); infosrc = (struct sockaddr_in *)(srclist->data); SET_ADDRESS(&addr, AT_IPv4, 4, &(infosrc->sin_addr.s_addr)); + addr_str = (char*)address_to_str(NULL, &addr); str = g_strdup_printf(")) || (sctp.dstport==%u && sctp.srcport==%u && (ip.dst==%s", - selected_stream->port1, selected_stream->port2, - ep_address_to_str(&addr)); + selected_stream->port1, selected_stream->port2, addr_str); g_string_append(gstring, str); + wmem_free(NULL, addr_str); srclist = g_list_next(srclist); while (srclist) { infosrc = (struct sockaddr_in *)(srclist->data); SET_ADDRESS(&addr, AT_IPv4, 4, &(infosrc->sin_addr.s_addr)); - str = g_strdup_printf("|| ip.dst==%s", ep_address_to_str(&addr)); + addr_str = (char*)address_to_str(NULL, &addr); + str = g_strdup_printf("|| ip.dst==%s", addr_str); g_string_append(gstring, str); + wmem_free(NULL, addr_str); srclist= g_list_next(srclist); } dstlist = g_list_first(selected_stream->addr2); infodst = (struct sockaddr_in *)(dstlist->data); SET_ADDRESS(&addr, AT_IPv4, 4, &(infodst->sin_addr.s_addr)); - str = g_strdup_printf(") && (ip.src==%s", ep_address_to_str(&addr)); + addr_str = (char*)address_to_str(NULL, &addr); + str = g_strdup_printf(") && (ip.src==%s", addr_str); g_string_append(gstring, str); + wmem_free(NULL, addr_str); dstlist = g_list_next(dstlist); while (dstlist) { infodst = (struct sockaddr_in *)(dstlist->data); SET_ADDRESS(&addr, AT_IPv4, 4, &(infodst->sin_addr.s_addr)); - str = g_strdup_printf("|| ip.src==%s", ep_address_to_str(&addr)); + addr_str = (char*)address_to_str(NULL, &addr); + str = g_strdup_printf("|| ip.src==%s", addr_str); g_string_append(gstring, str); + wmem_free(NULL, addr_str); dstlist = g_list_next(dstlist); } str = g_strdup_printf(")))"); diff --git a/ui/gtk/tcp_graph.c b/ui/gtk/tcp_graph.c index 3c2bf9f30a..79f27cea4b 100644 --- a/ui/gtk/tcp_graph.c +++ b/ui/gtk/tcp_graph.c @@ -681,6 +681,7 @@ static void create_drawing_area(struct gtk_graph *g) char *display_name; char window_title[WINDOW_TITLE_LENGTH]; GtkAllocation widget_alloc; + char *src_addr, *dst_addr; #if 0 /* Prep. to include the controls in the graph window */ GtkWidget *frame; @@ -691,15 +692,19 @@ static void create_drawing_area(struct gtk_graph *g) /* Set title of window with file + conversation details */ display_name = cf_get_display_name(&cfile); + src_addr = (char*)address_to_str(NULL, &g->tg.src_address); + dst_addr = (char*)address_to_str(NULL, &g->tg.dst_address); g_snprintf(window_title, WINDOW_TITLE_LENGTH, "TCP Graph %d: %s %s:%d " UTF8_RIGHTWARDS_ARROW " %s:%d", refnum, display_name, - ep_address_to_str(&g->tg.src_address), + src_addr, g->tg.src_port, - ep_address_to_str(&g->tg.dst_address), + dst_addr, g->tg.dst_port ); g_free(display_name); + wmem_free(NULL, src_addr); + wmem_free(NULL, dst_addr); g->toplevel = dlg_window_new("Tcp Graph"); gtk_window_set_title(GTK_WINDOW(g->toplevel), window_title); gtk_widget_set_name(g->toplevel, "Test Graph"); diff --git a/ui/gtk/voip_calls_dlg.c b/ui/gtk/voip_calls_dlg.c index fc581fb9c0..8fbff7aa20 100644 --- a/ui/gtk/voip_calls_dlg.c +++ b/ui/gtk/voip_calls_dlg.c @@ -198,6 +198,7 @@ voip_calls_on_filter(GtkButton *button _U_, gpointer user_data _U_) size_t filter_length; size_t max_filter_length = 2048; /* What's this based on ? */ int pos; + char* addr_str; const sip_calls_info_t *sipinfo; const isup_calls_info_t *isupinfo; @@ -287,10 +288,12 @@ voip_calls_on_filter(GtkButton *button _U_, gpointer user_data _U_) listb = g_list_first(h323info->h245_list); while (listb) { h245_add = (h245_address_t *)listb->data; + addr_str = (char*)address_to_str(NULL, &h245_add->h245_address); g_string_append_printf(filter_string_fwd, " || (ip.addr == %s && tcp.port == %d && h245)", - ep_address_to_str(&h245_add->h245_address), h245_add->h245_port); + addr_str, h245_add->h245_port); listb = g_list_next(listb); + wmem_free(NULL, addr_str); } g_string_append_printf(filter_string_fwd, ")"); break; diff --git a/ui/gtk/wlan_stat_dlg.c b/ui/gtk/wlan_stat_dlg.c index cb0823e883..3d328d8ac3 100644 --- a/ui/gtk/wlan_stat_dlg.c +++ b/ui/gtk/wlan_stat_dlg.c @@ -756,6 +756,7 @@ wlan_select_filter_cb(GtkWidget *widget _U_, gpointer callback_data, guint callb GtkTreeSelection *sel; GtkTreeModel *model; GtkTreeIter iter; + char *addr_str; sel = gtk_tree_view_get_selection (GTK_TREE_VIEW(hs->table)); if (!gtk_tree_selection_get_selected(sel, &model, &iter)) @@ -764,24 +765,26 @@ wlan_select_filter_cb(GtkWidget *widget _U_, gpointer callback_data, guint callb value = FILTER_EXTRA(callback_action); + addr_str = (char*)address_to_str(NULL, &ep->bssid); switch (value) { case VALUE_BSSID_ONLY: - str = g_strdup_printf("wlan.bssid==%s", ep_address_to_str(&ep->bssid)); + str = g_strdup_printf("wlan.bssid==%s", addr_str); break; case VALUE_SSID_ONLY: str = g_strdup_printf("wlan_mgt.ssid==\"%s\"", format_text(ep->stats.ssid, ep->stats.ssid_len)); break; case VALUE_BSSID_AND_SSID: str = g_strdup_printf("wlan.bssid==%s && wlan_mgt.ssid==\"%s\"", - ep_address_to_str(&ep->bssid), format_text(ep->stats.ssid, ep->stats.ssid_len)); + addr_str, format_text(ep->stats.ssid, ep->stats.ssid_len)); break; case VALUE_BSSID_OR_SSID: str = g_strdup_printf("wlan.bssid==%s || wlan_mgt.ssid==\"%s\"", - ep_address_to_str(&ep->bssid), format_text(ep->stats.ssid, ep->stats.ssid_len)); + addr_str, format_text(ep->stats.ssid, ep->stats.ssid_len)); break; default: g_assert_not_reached(); } + wmem_free(NULL, addr_str); apply_selected_filter (callback_action, str); @@ -797,17 +800,20 @@ wlan_details_select_filter_cb(GtkWidget *widget _U_, gpointer callback_data, gui GtkTreeSelection *sel; GtkTreeModel *model; GtkTreeIter iter; + char *addr_str; sel = gtk_tree_view_get_selection (GTK_TREE_VIEW(hs->details)); if (!gtk_tree_selection_get_selected(sel, &model, &iter)) return; gtk_tree_model_get (model, &iter, DETAILS_COLUMN, &ep, -1); - str = g_strdup_printf("wlan.addr==%s", ep_address_to_str(&ep->addr)); + addr_str = (char*)address_to_str(NULL, &ep->addr); + str = g_strdup_printf("wlan.addr==%s", addr_str); apply_selected_filter (callback_action, str); g_free (str); + wmem_free(NULL, addr_str); } static gboolean diff --git a/ui/iface_lists.c b/ui/iface_lists.c index 8fed6eddbd..a1f761adc9 100644 --- a/ui/iface_lists.c +++ b/ui/iface_lists.c @@ -192,22 +192,26 @@ scan_local_interfaces(void (*update_cb)(void)) addr = (if_addr_t *)curr_addr->data; if (addr) { address addr_str; + char* temp_addr_str = NULL; temp_addr->ifat_type = addr->ifat_type; switch (addr->ifat_type) { case IF_AT_IPv4: temp_addr->addr.ip4_addr = addr->addr.ip4_addr; SET_ADDRESS(&addr_str, AT_IPv4, 4, &addr->addr.ip4_addr); - g_string_append(ip_str, ep_address_to_str(&addr_str)); + temp_addr_str = address_to_str(NULL, &addr_str); + g_string_append(ip_str, temp_addr_str); break; case IF_AT_IPv6: memcpy(temp_addr->addr.ip6_addr, addr->addr.ip6_addr, sizeof(addr->addr)); SET_ADDRESS(&addr_str, AT_IPv6, 16, addr->addr.ip6_addr); - g_string_append(ip_str, ep_address_to_str(&addr_str)); + temp_addr_str = address_to_str(NULL, &addr_str); + g_string_append(ip_str, temp_addr_str); break; default: /* In case we add non-IP addresses */ break; } + wmem_free(NULL, temp_addr_str); } else { g_free(temp_addr); temp_addr = NULL; diff --git a/ui/qt/lbm_lbtrm_transport_dialog.cpp b/ui/qt/lbm_lbtrm_transport_dialog.cpp index b98cc2dc48..321a52d3f1 100644 --- a/ui/qt/lbm_lbtrm_transport_dialog.cpp +++ b/ui/qt/lbm_lbtrm_transport_dialog.cpp @@ -1059,7 +1059,7 @@ void LBMLBTRMTransportDialogInfo::processPacket(const packet_info * pinfo, const { LBMLBTRMSourceEntry * source = NULL; LBMLBTRMSourceMapIterator it; - QString src_address = QString(ep_address_to_str(&(pinfo->src))); + QString src_address = QString(address_to_str(pinfo->pool, &(pinfo->src))); it = m_sources.find(src_address); if (m_sources.end() == it) @@ -1086,7 +1086,7 @@ void LBMLBTRMTransportDialogInfo::processPacket(const packet_info * pinfo, const { LBMLBTRMReceiverEntry * receiver = NULL; LBMLBTRMReceiverMapIterator it; - QString src_address = QString(ep_address_to_str(&(pinfo->src))); + QString src_address = QString(address_to_str(pinfo->pool, &(pinfo->src))); it = m_receivers.find(src_address); if (m_receivers.end() == it) diff --git a/ui/qt/lbm_lbtru_transport_dialog.cpp b/ui/qt/lbm_lbtru_transport_dialog.cpp index 742025ef1f..cfdad456b5 100644 --- a/ui/qt/lbm_lbtru_transport_dialog.cpp +++ b/ui/qt/lbm_lbtru_transport_dialog.cpp @@ -1396,7 +1396,7 @@ void LBMLBTRUTransportDialogInfo::processPacket(const packet_info * pinfo, const { LBMLBTRUSourceEntry * source = NULL; LBMLBTRUSourceMapIterator it; - QString src_address = QString(ep_address_to_str(&(pinfo->src))); + QString src_address = QString(address_to_str(pinfo->pool, &(pinfo->src))); it = m_sources.find(src_address); if (m_sources.end() == it) @@ -1425,7 +1425,7 @@ void LBMLBTRUTransportDialogInfo::processPacket(const packet_info * pinfo, const { LBMLBTRUReceiverEntry * receiver = NULL; LBMLBTRUReceiverMapIterator it; - QString src_address = QString(ep_address_to_str(&(pinfo->src))); + QString src_address = QString(address_to_str(pinfo->pool, &(pinfo->src))); it = m_receivers.find(src_address); if (m_receivers.end() == it) diff --git a/ui/qt/lbm_stream_dialog.cpp b/ui/qt/lbm_stream_dialog.cpp index 514cd45135..3fecb31260 100644 --- a/ui/qt/lbm_stream_dialog.cpp +++ b/ui/qt/lbm_stream_dialog.cpp @@ -56,7 +56,7 @@ namespace class LBMSubstreamEntry { public: - LBMSubstreamEntry(guint64 channel, guint32 substream_id, const address * source_address, guint16 source_port, const address * destination_address, guint16 destination_port); + LBMSubstreamEntry(guint64 channel, guint32 substream_id, const packet_info* pinfo, const address * source_address, guint16 source_port, const address * destination_address, guint16 destination_port); ~LBMSubstreamEntry(void); void processPacket(guint32 frame, guint32 bytes); void setItem(QTreeWidgetItem * item); @@ -79,7 +79,7 @@ class LBMSubstreamEntry QTreeWidgetItem * m_item; }; -LBMSubstreamEntry::LBMSubstreamEntry(guint64 channel, guint32 substream_id, const address * source_address, guint16 source_port, const address * destination_address, guint16 destination_port) : +LBMSubstreamEntry::LBMSubstreamEntry(guint64 channel, guint32 substream_id, const packet_info* pinfo, const address * source_address, guint16 source_port, const address * destination_address, guint16 destination_port) : m_channel(channel), m_substream_id(substream_id), m_first_frame((guint32)(~0)), @@ -89,10 +89,10 @@ LBMSubstreamEntry::LBMSubstreamEntry(guint64 channel, guint32 substream_id, cons m_item(NULL) { m_endpoint_a = QString("%1:%2") - .arg(ep_address_to_str(source_address)) + .arg(address_to_str(pinfo->pool, source_address)) .arg(source_port); m_endpoint_b = QString("%1:%2") - .arg(ep_address_to_str(destination_address)) + .arg(address_to_str(pinfo->pool, destination_address)) .arg(destination_port); } @@ -141,7 +141,7 @@ typedef QMap<guint32, LBMSubstreamEntry *>::iterator LBMSubstreamMapIterator; class LBMStreamEntry { public: - LBMStreamEntry(guint64 channel, const lbm_uim_stream_endpoint_t * endpoint_a, const lbm_uim_stream_endpoint_t * endpoint_b); + LBMStreamEntry(const packet_info * pinfo, guint64 channel, const lbm_uim_stream_endpoint_t * endpoint_a, const lbm_uim_stream_endpoint_t * endpoint_b); ~LBMStreamEntry(void); void processPacket(const packet_info * pinfo, const lbm_uim_stream_tap_info_t * stream_info); void setItem(QTreeWidgetItem * item); @@ -153,7 +153,7 @@ class LBMStreamEntry private: LBMStreamEntry(void) { } void fillItem(gboolean update_only = TRUE); - QString formatEndpoint(const lbm_uim_stream_endpoint_t * endpoint); + QString formatEndpoint(const packet_info * pinfo, const lbm_uim_stream_endpoint_t * endpoint); guint64 m_channel; QString m_endpoint_a; QString m_endpoint_b; @@ -165,7 +165,7 @@ class LBMStreamEntry LBMSubstreamMap m_substreams; }; -LBMStreamEntry::LBMStreamEntry(guint64 channel, const lbm_uim_stream_endpoint_t * endpoint_a, const lbm_uim_stream_endpoint_t * endpoint_b) : +LBMStreamEntry::LBMStreamEntry(const packet_info * pinfo, guint64 channel, const lbm_uim_stream_endpoint_t * endpoint_a, const lbm_uim_stream_endpoint_t * endpoint_b) : m_channel(channel), m_first_frame((guint32)(~0)), m_flast_frame(0), @@ -174,8 +174,8 @@ LBMStreamEntry::LBMStreamEntry(guint64 channel, const lbm_uim_stream_endpoint_t m_item(NULL), m_substreams() { - m_endpoint_a = formatEndpoint(endpoint_a); - m_endpoint_b = formatEndpoint(endpoint_b); + m_endpoint_a = formatEndpoint(pinfo, endpoint_a); + m_endpoint_b = formatEndpoint(pinfo, endpoint_b); } LBMStreamEntry::~LBMStreamEntry(void) @@ -189,7 +189,7 @@ LBMStreamEntry::~LBMStreamEntry(void) m_substreams.clear(); } -QString LBMStreamEntry::formatEndpoint(const lbm_uim_stream_endpoint_t * endpoint) +QString LBMStreamEntry::formatEndpoint(const packet_info * pinfo, const lbm_uim_stream_endpoint_t * endpoint) { if (endpoint->type == lbm_uim_instance_stream) { @@ -199,7 +199,7 @@ QString LBMStreamEntry::formatEndpoint(const lbm_uim_stream_endpoint_t * endpoin { return QString("%1:%2:%3") .arg(endpoint->stream_info.dest.domain) - .arg(ep_address_to_str(&(endpoint->stream_info.dest.addr))) + .arg(address_to_str(pinfo->pool, &(endpoint->stream_info.dest.addr))) .arg(endpoint->stream_info.dest.port); } } @@ -224,7 +224,7 @@ void LBMStreamEntry::processPacket(const packet_info * pinfo, const lbm_uim_stre { QTreeWidgetItem * item = NULL; - substream = new LBMSubstreamEntry(m_channel, stream_info->substream_id, &(pinfo->src), pinfo->srcport, &(pinfo->dst), pinfo->destport); + substream = new LBMSubstreamEntry(m_channel, stream_info->substream_id, pinfo, &(pinfo->src), pinfo->srcport, &(pinfo->dst), pinfo->destport); m_substreams.insert(stream_info->substream_id, substream); item = new QTreeWidgetItem(); substream->setItem(item); @@ -310,7 +310,7 @@ void LBMStreamDialogInfo::processPacket(const packet_info * pinfo, const lbm_uim QTreeWidgetItem * parent = NULL; Ui::LBMStreamDialog * ui = NULL; - stream = new LBMStreamEntry(stream_info->channel, &(stream_info->endpoint_a), &(stream_info->endpoint_b)); + stream = new LBMStreamEntry(pinfo, stream_info->channel, &(stream_info->endpoint_a), &(stream_info->endpoint_b)); it = m_streams.insert(stream_info->channel, stream); item = new QTreeWidgetItem(); stream->setItem(item); diff --git a/ui/qt/lbm_uimflow_dialog.cpp b/ui/qt/lbm_uimflow_dialog.cpp index 010ff90afd..11a5a82c42 100644 --- a/ui/qt/lbm_uimflow_dialog.cpp +++ b/ui/qt/lbm_uimflow_dialog.cpp @@ -144,10 +144,10 @@ static gboolean lbm_uimflow_add_to_graph(seq_analysis_info_t * seq_info, packet_ { item->comment = g_strdup_printf("%" G_GUINT32_FORMAT ":%s:%" G_GUINT16_FORMAT " <-> %" G_GUINT32_FORMAT ":%s:%" G_GUINT16_FORMAT " [%" G_GUINT64_FORMAT "]", epa.stream_info.dest.domain, - ep_address_to_str(&(epa.stream_info.dest.addr)), + address_to_str(pinfo->pool, &(epa.stream_info.dest.addr)), epa.stream_info.dest.port, epb.stream_info.dest.domain, - ep_address_to_str(&(epb.stream_info.dest.addr)), + address_to_str(pinfo->pool, &(epb.stream_info.dest.addr)), epb.stream_info.dest.port, stream_info->channel); } diff --git a/ui/qt/manage_interfaces_dialog.cpp b/ui/qt/manage_interfaces_dialog.cpp index a660e936ad..f28affc72f 100644 --- a/ui/qt/manage_interfaces_dialog.cpp +++ b/ui/qt/manage_interfaces_dialog.cpp @@ -549,6 +549,7 @@ void ManageInterfacesDialog::addRemoteInterfaces(GList* rlist, remote_options *r caps = capture_get_if_capabilities(if_string, monitor_mode, NULL, main_window_update); for (; (curr_addr = g_slist_nth(if_info->addrs, ips)) != NULL; ips++) { address addr_str; + char* temp_addr_str = NULL; if (ips != 0) { g_string_append(ip_str, "\n"); } @@ -556,16 +557,19 @@ void ManageInterfacesDialog::addRemoteInterfaces(GList* rlist, remote_options *r switch (addr->ifat_type) { case IF_AT_IPv4: SET_ADDRESS(&addr_str, AT_IPv4, 4, &addr->addr.ip4_addr); - g_string_append(ip_str, ep_address_to_str(&addr_str)); + temp_addr_str = (char*)address_to_str(NULL, &addr_str); + g_string_append(ip_str, temp_addr_str); break; case IF_AT_IPv6: SET_ADDRESS(&addr_str, AT_IPv6, 16, addr->addr.ip6_addr); - g_string_append(ip_str, ep_address_to_str(&addr_str)); + temp_addr_str = (char*)address_to_str(NULL, &addr_str); + g_string_append(ip_str, temp_addr_str); break; default: /* In case we add non-IP addresses */ break; } + wmem_free(NULL, temp_addr_str); } /* for curr_addr */ linktype_count = 0; device.links = NULL; diff --git a/ui/qt/sctp_assoc_analyse_dialog.cpp b/ui/qt/sctp_assoc_analyse_dialog.cpp index 827af28b21..07097ab052 100644 --- a/ui/qt/sctp_assoc_analyse_dialog.cpp +++ b/ui/qt/sctp_assoc_analyse_dialog.cpp @@ -131,7 +131,9 @@ void SCTPAssocAnalyseDialog::fillTabs() store = (address *)(list->data); if (store->type != AT_NONE) { if ((store->type == AT_IPv4) || (store->type == AT_IPv6)) { - ui->listWidgetEP1->addItem(QString("%1").arg(ep_address_to_str(store))); + char* addr_str = (char*)address_to_str(NULL, store); + ui->listWidgetEP1->addItem(QString("%1").arg(addr_str)); + wmem_free(NULL, addr_str); } } list = g_list_next(list); @@ -183,7 +185,9 @@ void SCTPAssocAnalyseDialog::fillTabs() store = (address *)(list->data); if (store->type != AT_NONE) { if ((store->type == AT_IPv4) || (store->type == AT_IPv6)) { - ui->listWidgetEP2->addItem(QString("%1").arg(ep_address_to_str(store))); + char* addr_str = (char*)address_to_str(NULL, store); + ui->listWidgetEP2->addItem(QString("%1").arg(addr_str)); + wmem_free(NULL, addr_str); } } list = g_list_next(list); diff --git a/ui/qt/tcp_stream_dialog.cpp b/ui/qt/tcp_stream_dialog.cpp index bbd5113f54..2f66f3f937 100644 --- a/ui/qt/tcp_stream_dialog.cpp +++ b/ui/qt/tcp_stream_dialog.cpp @@ -725,12 +725,17 @@ void TCPStreamDialog::fillWindowScale() QString TCPStreamDialog::streamDescription() { - return QString(tr(" for %1:%2 %3 %4:%5")) - .arg(ep_address_to_str(&graph_.src_address)) + char* src_addr = (char*)address_to_str(NULL, &graph_.src_address); + char* dst_addr = (char*)address_to_str(NULL, &graph_.dst_address); + QString description(tr(" for %1:%2 %3 %4:%5") + .arg(src_addr) .arg(graph_.src_port) .arg(UTF8_RIGHTWARDS_ARROW) - .arg(ep_address_to_str(&graph_.dst_address)) - .arg(graph_.dst_port); + .arg(dst_addr) + .arg(graph_.dst_port)); + wmem_free(NULL, src_addr); + wmem_free(NULL, dst_addr); + return description; } bool TCPStreamDialog::compareHeaders(segment *seg) diff --git a/ui/qt/voip_calls_dialog.cpp b/ui/qt/voip_calls_dialog.cpp index 13c38f416f..d194f5bfa0 100644 --- a/ui/qt/voip_calls_dialog.cpp +++ b/ui/qt/voip_calls_dialog.cpp @@ -352,6 +352,7 @@ void VoipCallsDialog::prepareFilter() const h323_calls_info_t *h323info; const h245_address_t *h245_add = NULL; const gcp_ctx_t* ctx; + char* addr_str; if (filter_length < max_filter_length) { gtk_editable_insert_text(GTK_EDITABLE(main_display_filter_widget), filter_string_fwd->str, -1, &pos); @@ -398,10 +399,12 @@ void VoipCallsDialog::prepareFilter() listb = g_list_first(h323info->h245_list); while (listb) { h245_add = (h245_address_t *)listb->data; + addr_str = (char*)address_to_str(NULL, &h245_add->h245_address); g_string_append_printf(filter_string_fwd, " || (ip.addr == %s && tcp.port == %d && h245)", - ep_address_to_str(&h245_add->h245_address), h245_add->h245_port); + addr_str, h245_add->h245_port); listb = g_list_next(listb); + wmem_free(NULL, addr_str); } g_string_append_printf(filter_string_fwd, ")"); break; |