aboutsummaryrefslogtreecommitdiffstats
path: root/epan
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2015-01-17 21:17:24 -0500
committerMichael Mann <mmann78@netscape.net>2015-01-18 04:15:18 +0000
commita1f2342e13c576ae4899bd11e54d350b1ea23625 (patch)
tree5cbd19df87aecbcfb7ce6b145fbf9bcd7bb2ff39 /epan
parentef7e8aa065a485edf4a9aba299ceb15a19ae0dd0 (diff)
Miscellaneous ep_strdup_printf replacement.
Change-Id: I973c672e9d573ad67e9b9fd82a5610aaf8a74efa Reviewed-on: https://code.wireshark.org/review/6605 Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'epan')
-rw-r--r--epan/addr_resolv.c12
-rw-r--r--epan/addr_resolv.h2
-rw-r--r--epan/address_to_str.c10
-rw-r--r--epan/dissectors/packet-nhrp.c4
-rw-r--r--epan/packet.c4
-rw-r--r--epan/packet.h2
-rw-r--r--epan/print.c13
7 files changed, 27 insertions, 20 deletions
diff --git a/epan/addr_resolv.c b/epan/addr_resolv.c
index 8d3d8c7f93..d1993e70b9 100644
--- a/epan/addr_resolv.c
+++ b/epan/addr_resolv.c
@@ -3026,8 +3026,8 @@ get_ipxnet_addr(const gchar *name, gboolean *known)
} /* get_ipxnet_addr */
-const gchar *
-get_manuf_name(const guint8 *addr)
+gchar *
+get_manuf_name(wmem_allocator_t *allocator, const guint8 *addr)
{
gchar *cur;
int manuf_key;
@@ -3043,11 +3043,11 @@ get_manuf_name(const guint8 *addr)
manuf_key = manuf_key | oct;
if (!gbl_resolv_flags.mac_name || ((cur = (gchar *)g_hash_table_lookup(manuf_hashtable, &manuf_key)) == NULL)) {
- cur=ep_strdup_printf("%02x:%02x:%02x", addr[0], addr[1], addr[2]);
+ cur=wmem_strdup_printf(allocator, "%02x:%02x:%02x", addr[0], addr[1], addr[2]);
return cur;
}
- return cur;
+ return wmem_strdup(allocator, cur);
} /* get_manuf_name */
@@ -3059,13 +3059,13 @@ uint_get_manuf_name(const guint oid)
addr[0] = (oid >> 16) & 0xFF;
addr[1] = (oid >> 8) & 0xFF;
addr[2] = (oid >> 0) & 0xFF;
- return get_manuf_name(addr);
+ return get_manuf_name(wmem_packet_scope(), addr);
}
const gchar *
tvb_get_manuf_name(tvbuff_t *tvb, gint offset)
{
- return get_manuf_name(tvb_get_ptr(tvb, offset, 3));
+ return get_manuf_name(wmem_packet_scope(), tvb_get_ptr(tvb, offset, 3));
}
const gchar *
diff --git a/epan/addr_resolv.h b/epan/addr_resolv.h
index 184462c285..56e61a6ba8 100644
--- a/epan/addr_resolv.h
+++ b/epan/addr_resolv.h
@@ -182,7 +182,7 @@ gchar *get_ether_name_if_known(const guint8 *addr);
* Given a sequence of 3 octets containing an OID, get_manuf_name()
* returns the vendor name, or "%02x:%02x:%02x" if not known.
*/
-extern const gchar *get_manuf_name(const guint8 *addr);
+extern gchar *get_manuf_name(wmem_allocator_t *allocator, const guint8 *addr);
/*
* Given a sequence of 3 octets containing an OID, get_manuf_name_if_known()
diff --git a/epan/address_to_str.c b/epan/address_to_str.c
index b3660bd111..1d388c9dfc 100644
--- a/epan/address_to_str.c
+++ b/epan/address_to_str.c
@@ -323,7 +323,7 @@ fcwwn_addr_to_str_buf(const guint8 *addrp, gchar *buf, int buf_len)
{
int fmt;
guint8 oui[6];
- gchar *ethptr;
+ gchar *ethptr, *manuf_name;
if (buf_len < 200) { /* This is mostly for manufacturer name */
g_strlcpy(buf, BUF_TOO_SMALL_ERR, buf_len); /* Let the unexpected value alert user */
@@ -338,7 +338,9 @@ fcwwn_addr_to_str_buf(const guint8 *addrp, gchar *buf, int buf_len)
case FC_NH_NAA_IEEE_E:
memcpy (oui, &addrp[2], 6);
- g_snprintf (ethptr, buf_len-23, " (%s)", get_manuf_name (oui));
+ manuf_name = get_manuf_name(NULL, oui);
+ g_snprintf (ethptr, buf_len-23, " (%s)", manuf_name);
+ wmem_free(NULL, manuf_name);
break;
case FC_NH_NAA_IEEE_R:
@@ -349,7 +351,9 @@ fcwwn_addr_to_str_buf(const guint8 *addrp, gchar *buf, int buf_len)
oui[4] = ((addrp[4] & 0x0F) << 4) | ((addrp[5] & 0xF0) >> 4);
oui[5] = ((addrp[5] & 0x0F) << 4) | ((addrp[6] & 0xF0) >> 4);
- g_snprintf (ethptr, buf_len-23, " (%s)", get_manuf_name (oui));
+ manuf_name = get_manuf_name(NULL, oui);
+ g_snprintf (ethptr, buf_len-23, " (%s)", manuf_name);
+ wmem_free(NULL, manuf_name);
break;
default:
diff --git a/epan/dissectors/packet-nhrp.c b/epan/dissectors/packet-nhrp.c
index d28e2587dc..e61fc42823 100644
--- a/epan/dissectors/packet-nhrp.c
+++ b/epan/dissectors/packet-nhrp.c
@@ -920,10 +920,10 @@ static void dissect_nhrp_ext(tvbuff_t *tvb,
tvb_memcpy(tvb, manuf, offset, 3);
vendor_tree = proto_tree_add_subtree_format(nhrp_tree, tvb, offset, len,
- ett_nhrp_vendor_ext, NULL, "Extension Data: Vendor ID=%s, Data=%s", get_manuf_name(manuf),
+ ett_nhrp_vendor_ext, NULL, "Extension Data: Vendor ID=%s, Data=%s", get_manuf_name(wmem_packet_scope(), manuf),
tvb_bytes_to_str(wmem_packet_scope(), tvb, offset + 3, len - 3));
proto_tree_add_bytes_format_value(vendor_tree, hf_nhrp_vendor_ext_id, tvb,
- offset, 3, manuf, "%s", get_manuf_name(manuf));
+ offset, 3, manuf, "%s", get_manuf_name(wmem_packet_scope(), manuf));
if (len > 3) {
proto_tree_add_item(vendor_tree, hf_nhrp_vendor_ext_data, tvb, offset + 3, len - 3, ENC_NA);
}
diff --git a/epan/packet.c b/epan/packet.c
index b189c229f4..3baa13752f 100644
--- a/epan/packet.c
+++ b/epan/packet.c
@@ -347,12 +347,12 @@ remove_last_data_source(packet_info *pinfo)
g_slice_free(struct data_source, src);
}
-const char*
+char*
get_data_source_name(const struct data_source *src)
{
guint length = tvb_length(src->tvb);
- return ep_strdup_printf("%s (%u byte%s)", src->name, length,
+ return wmem_strdup_printf(NULL, "%s (%u byte%s)", src->name, length,
plurality(length, "", "s"));
}
diff --git a/epan/packet.h b/epan/packet.h
index 4e5aff1644..a087120fb0 100644
--- a/epan/packet.h
+++ b/epan/packet.h
@@ -579,7 +579,7 @@ WS_DLL_PUBLIC void remove_last_data_source(packet_info *pinfo);
* Return the data source name, tvb.
*/
struct data_source;
-WS_DLL_PUBLIC const char *get_data_source_name(const struct data_source *src);
+WS_DLL_PUBLIC char *get_data_source_name(const struct data_source *src);
WS_DLL_PUBLIC tvbuff_t *get_data_source_tvb(const struct data_source *src);
/*
diff --git a/epan/print.c b/epan/print.c
index 3b15a1723f..fca9c2d4a0 100644
--- a/epan/print.c
+++ b/epan/print.c
@@ -677,7 +677,7 @@ write_carrays_hex_data(guint32 num, FILE *fh, epan_dissect_t *edt)
guint32 i = 0, src_num = 0;
GSList *src_le;
tvbuff_t *tvb;
- const char *name;
+ char *name;
const guchar *cp;
guint length;
char ascii[9];
@@ -694,8 +694,10 @@ write_carrays_hex_data(guint32 num, FILE *fh, epan_dissect_t *edt)
cp = tvb_get_ptr(tvb, 0, length);
name = get_data_source_name(src);
- if (name)
+ if (name) {
fprintf(fh, "/* %s */\n", name);
+ wmem_free(NULL, name);
+ }
if (src_num) {
fprintf(fh, "static const unsigned char pkt%u_%u[%u] = {\n",
num, src_num, length);
@@ -846,8 +848,7 @@ print_hex_data(print_stream_t *stream, epan_dissect_t *edt)
gboolean multiple_sources;
GSList *src_le;
tvbuff_t *tvb;
- const char *name;
- char *line;
+ char *line, *name;
const guchar *cp;
guint length;
struct data_source *src;
@@ -867,6 +868,7 @@ print_hex_data(print_stream_t *stream, epan_dissect_t *edt)
if (multiple_sources) {
name = get_data_source_name(src);
line = g_strdup_printf("%s:", name);
+ wmem_free(NULL, name);
print_line(stream, 0, line);
g_free(line);
}
@@ -1339,8 +1341,9 @@ void write_fields_proto_tree(output_fields_t *fields, epan_dissect_t *edt, colum
if (fields->includes_col_fields) {
for (col = 0; col < cinfo->num_cols; col++) {
/* Prepend COLUMN_FIELD_FILTER as the field name */
- col_name = ep_strdup_printf("%s%s", COLUMN_FIELD_FILTER, cinfo->col_title[col]);
+ col_name = g_strdup_printf("%s%s", COLUMN_FIELD_FILTER, cinfo->col_title[col]);
field_index = g_hash_table_lookup(fields->field_indicies, col_name);
+ g_free(col_name);
if (NULL != field_index) {
format_field_values(fields, field_index, g_strdup(cinfo->col_data[col]));