summaryrefslogtreecommitdiff
path: root/epan/dissectors
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2012-08-10 02:05:19 +0000
committerMichael Mann <mmann78@netscape.net>2012-08-10 02:05:19 +0000
commit1d9c472cae6d080cbee2b49f394a6b224772ccbf (patch)
tree27006bf9c02a0cc28a68d3cf2438b584662b7363 /epan/dissectors
parent94b65da5472e5a812d04a61ee6f0b5c35a0b4d3c (diff)
downloadwireshark-1d9c472cae6d080cbee2b49f394a6b224772ccbf.tar.gz
convert some simple uses to use ephemeral memory
svn path=/trunk/; revision=44413
Diffstat (limited to 'epan/dissectors')
-rw-r--r--epan/dissectors/packet-aastra-aasp.c24
-rw-r--r--epan/dissectors/packet-bjnp.c4
-rw-r--r--epan/dissectors/packet-csm-encaps.c5
-rw-r--r--epan/dissectors/packet-elcom.c8
-rw-r--r--epan/dissectors/packet-glusterfs.c7
-rw-r--r--epan/dissectors/packet-gopher.c3
-rw-r--r--epan/dissectors/packet-iax2.c3
-rw-r--r--epan/dissectors/packet-ieee80211.c3
-rw-r--r--epan/dissectors/packet-mbtcp.c11
-rw-r--r--epan/dissectors/packet-meta.c20
-rw-r--r--epan/dissectors/packet-mmse.c5
-rw-r--r--epan/dissectors/packet-mux27010.c3
-rw-r--r--epan/dissectors/packet-ospf.c11
-rw-r--r--epan/dissectors/packet-rpcap.c3
-rw-r--r--epan/dissectors/packet-tds.c3
15 files changed, 34 insertions, 79 deletions
diff --git a/epan/dissectors/packet-aastra-aasp.c b/epan/dissectors/packet-aastra-aasp.c
index 3fa310841d..e927e74be2 100644
--- a/epan/dissectors/packet-aastra-aasp.c
+++ b/epan/dissectors/packet-aastra-aasp.c
@@ -217,11 +217,10 @@ dissect_a_binary_command(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree
proto_tree_add_item(subtree, hf_a_length, tvb, 4, 1, ENC_NA);
proto_tree_add_item(subtree, hf_a_text, tvb, 5, -1, ENC_ASCII|ENC_NA);
- pstr = tvb_get_string(tvb, 5, tvb_get_guint8(tvb, 4));
+ pstr = tvb_get_ephemeral_string(tvb, 5, tvb_get_guint8(tvb, 4));
if(pstr)
{
proto_item_append_text(ti, ": '%s'", pstr);
- g_free(pstr);
}
}
else
@@ -284,12 +283,10 @@ dissect_a_binary_command(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree
ti = proto_tree_add_item(subtree, hf_a_item, tvb, i, len+2, ENC_NA);
infotree = proto_item_add_subtree(ti, ett_a_item);
proto_tree_add_item(infotree, hf_a_weekday, tvb, i+2, len, ENC_ASCII|ENC_NA);
- pstr = tvb_get_string(tvb, i+2, len);
+ pstr = tvb_get_ephemeral_string(tvb, i+2, len);
if(pstr)
- {
proto_item_append_text(ti, ", Weekday: '%s'", pstr);
- g_free(pstr);
- }
+
i += len +2;
break;
}
@@ -299,12 +296,9 @@ dissect_a_binary_command(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree
ti = proto_tree_add_item(subtree, hf_a_item, tvb, i, len+2, ENC_NA);
infotree = proto_item_add_subtree(ti, ett_a_item);
proto_tree_add_item(infotree, hf_a_month_name, tvb, i+2, len, ENC_ASCII|ENC_NA);
- pstr = tvb_get_string(tvb, i+2, len);
+ pstr = tvb_get_ephemeral_string(tvb, i+2, len);
if(pstr)
- {
proto_item_append_text(ti, ", Month name: '%s'", pstr);
- g_free(pstr);
- }
i += len +2;
break;
}
@@ -314,12 +308,9 @@ dissect_a_binary_command(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree
ti = proto_tree_add_item(subtree, hf_a_item, tvb, i, len+2, ENC_NA);
infotree = proto_item_add_subtree(ti, ett_a_item);
proto_tree_add_item(infotree, hf_a_weekofyear_prefix, tvb, i+2, len, ENC_ASCII|ENC_NA);
- pstr = tvb_get_string(tvb, i+2, len);
+ pstr = tvb_get_ephemeral_string(tvb, i+2, len);
if(pstr)
- {
proto_item_append_text(ti, ", Week of the year prefix: '%s'", pstr);
- g_free(pstr);
- }
i += len +2;
break;
}
@@ -364,12 +355,9 @@ dissect_a_binary_command(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree
proto_tree_add_item(subtree, hf_a_length, tvb, 2, 1, ENC_NA);
proto_tree_add_item(subtree, hf_a_cdpn, tvb, 3, -1, ENC_ASCII|ENC_NA);
- pstr = tvb_get_string(tvb, 3, tvb_get_guint8(tvb, 2));
+ pstr = tvb_get_ephemeral_string(tvb, 3, tvb_get_guint8(tvb, 2));
if(pstr)
- {
proto_item_append_text(ti, ": '%s'", pstr);
- g_free(pstr);
- }
}
else
proto_item_append_text(ti, ": ???");
diff --git a/epan/dissectors/packet-bjnp.c b/epan/dissectors/packet-bjnp.c
index 5baaaeac1c..77a24df83c 100644
--- a/epan/dissectors/packet-bjnp.c
+++ b/epan/dissectors/packet-bjnp.c
@@ -111,14 +111,12 @@ static int dissect_bjnp (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
proto_tree_add_item (bjnp_tree, hf_cmd_code, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++;
- info = g_strdup_printf ("%s: %s",val_to_str (dev_type, dev_type_vals, "Unknown type (%d)"),
+ info = ep_strdup_printf("%s: %s",val_to_str (dev_type, dev_type_vals, "Unknown type (%d)"),
val_to_str (cmd_code, cmd_code_vals, "Unknown code (%d)"));
proto_item_append_text (ti, ", %s", info);
col_add_str (pinfo->cinfo, COL_INFO, info);
- g_free (info);
-
proto_tree_add_item (bjnp_tree, hf_seq_no, tvb, offset, 4, ENC_BIG_ENDIAN);
offset += 4;
diff --git a/epan/dissectors/packet-csm-encaps.c b/epan/dissectors/packet-csm-encaps.c
index fc3ff2d1ea..092d06e052 100644
--- a/epan/dissectors/packet-csm-encaps.c
+++ b/epan/dissectors/packet-csm-encaps.c
@@ -161,10 +161,10 @@ static gchar *
csm_fc(guint16 fc, guint16 ct)
{
if (fc == 0x0000) {
- return g_strdup(val_to_str(ct, class_type_vals,
+ return ep_strdup(val_to_str(ct, class_type_vals,
"0x%04x"));
} else {
- return g_strdup(val_to_str(fc, function_code_vals,
+ return ep_strdup(val_to_str(fc, function_code_vals,
"0x%04x"));
}
}
@@ -257,7 +257,6 @@ dissect_csm_encaps(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
col_append_fstr(pinfo->cinfo, COL_INFO,
"--> %-35s Ch: 0x%04X, Seq: %2d (From Host)",
str_function_name, channel, sequence);
- g_free(str_function_name);
}
diff --git a/epan/dissectors/packet-elcom.c b/epan/dissectors/packet-elcom.c
index b69f6bb3e7..e93acd4c03 100644
--- a/epan/dissectors/packet-elcom.c
+++ b/epan/dissectors/packet-elcom.c
@@ -217,19 +217,16 @@ dissect_lower_address(proto_item *ti_arg, gint ett_arg,
offset += 8; /* skip the zero bytes */
/* SUFFIX */
- suffix = tvb_get_string(tvb, offset+1, len2);
+ suffix = tvb_get_ephemeral_string(tvb, offset+1, len2);
ti = proto_tree_add_item(tree, hf_suff, tvb, offset, 1, ENC_ASCII|ENC_LITTLE_ENDIAN);
offset += len2+1;
if (!(suffix[0] == 'A' || suffix[0] == 'B')) {
- g_free(suffix);
proto_item_append_text(ti, " (invalid)");
return offset;
}
proto_item_append_text(ti, " (%s)", val_to_str(suffix[1], suffix_vals, "<<-- WHAT?") );
-
- g_free(suffix);
return offset;
}
@@ -452,9 +449,8 @@ dissect_elcom(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
if (tvb_get_guint8(tvb, 3+1+TOTAL_LEN+LOWADR_LEN) != SUFFIX_LEN) return;
/* finally believe that there is valid suffix */
- suffix = tvb_get_string(tvb, 3+2+LOWADR_LEN, 2);
+ suffix = tvb_get_ephemeral_string(tvb, 3+2+LOWADR_LEN, 2);
col_append_fstr(pinfo->cinfo, COL_INFO, " %s Connect", suffix);
- g_free(suffix);
break;
case P_RELRQ:
diff --git a/epan/dissectors/packet-glusterfs.c b/epan/dissectors/packet-glusterfs.c
index 608bd7ae06..e1fc53e7b6 100644
--- a/epan/dissectors/packet-glusterfs.c
+++ b/epan/dissectors/packet-glusterfs.c
@@ -517,13 +517,13 @@ gluster_rpc_dissect_dict(proto_tree *tree, tvbuff_t *tvb, int hfindex, int offse
offset += 4;
/* read the key, '\0' terminated */
- key = tvb_get_stringz(tvb, offset, &key_len);
+ key = tvb_get_ephemeral_stringz(tvb, offset, &key_len);
if (tree)
dict_item = proto_tree_add_text(subtree, tvb, offset, -1, "%s: ", key);
offset += key_len;
/* read the value, possibly '\0' terminated */
- value = tvb_get_string(tvb, offset, value_len);
+ value = tvb_get_ephemeral_string(tvb, offset, value_len);
if (tree) {
/* keys named "gfid-req" contain a GFID in hex */
if (value_len == 16 && !strncmp("gfid-req", key, 8)) {
@@ -534,9 +534,6 @@ gluster_rpc_dissect_dict(proto_tree *tree, tvbuff_t *tvb, int hfindex, int offse
proto_item_append_text(dict_item, "%s", value);
}
offset += value_len;
-
- g_free(key);
- g_free(value);
}
if (roundup) {
diff --git a/epan/dissectors/packet-gopher.c b/epan/dissectors/packet-gopher.c
index b9df44ba98..6d3c0058ef 100644
--- a/epan/dissectors/packet-gopher.c
+++ b/epan/dissectors/packet-gopher.c
@@ -174,10 +174,9 @@ dissect_gopher(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
col_append_fstr(pinfo->cinfo, COL_INFO, ": [Directory list]");
}
- name = tvb_get_string(tvb, offset + 1, sel_start - offset - 2);
+ name = tvb_get_ephemeral_string(tvb, offset + 1, sel_start - offset - 2);
ti = proto_tree_add_string(gopher_tree, hf_gopher_dir_item, tvb,
offset, line_len + 1, name);
- g_free(name);
dir_tree = proto_item_add_subtree(ti, ett_dir_item);
proto_tree_add_item(dir_tree, hf_gopher_di_type, tvb, offset, 1, ENC_BIG_ENDIAN);
proto_tree_add_item(dir_tree, hf_gopher_di_name, tvb, offset + 1,
diff --git a/epan/dissectors/packet-iax2.c b/epan/dissectors/packet-iax2.c
index 014750a1e6..09d5f95e94 100644
--- a/epan/dissectors/packet-iax2.c
+++ b/epan/dissectors/packet-iax2.c
@@ -1420,11 +1420,10 @@ static guint32 dissect_ies (tvbuff_t * tvb, guint32 offset,
ie_finfo->rep->representation);
else {
guint8 *ie_val = NULL;
- ie_val = g_malloc(ITEM_LABEL_LENGTH);
+ ie_val = ep_alloc(ITEM_LABEL_LENGTH);
proto_item_fill_label(ie_finfo, ie_val);
proto_item_set_text(ti, "Information Element: %s",
ie_val);
- g_free(ie_val);
}
}
}
diff --git a/epan/dissectors/packet-ieee80211.c b/epan/dissectors/packet-ieee80211.c
index 509aeb64b6..dba31020d2 100644
--- a/epan/dissectors/packet-ieee80211.c
+++ b/epan/dissectors/packet-ieee80211.c
@@ -3745,10 +3745,9 @@ dissect_nai_realm_list(proto_tree *tree, tvbuff_t *tvb, int offset, int end)
}
proto_tree_add_item(realm_tree, hf_ieee80211_ff_anqp_nai_realm,
tvb, offset, nai_len, ENC_ASCII|ENC_NA);
- realm = tvb_get_string(tvb, offset, nai_len);
+ realm = tvb_get_ephemeral_string(tvb, offset, nai_len);
if (realm) {
proto_item_append_text(r_item, " (%s)", realm);
- g_free(realm);
}
offset += nai_len;
eap_count = tvb_get_guint8(tvb, offset);
diff --git a/epan/dissectors/packet-mbtcp.c b/epan/dissectors/packet-mbtcp.c
index 7316ffa4bd..67c820c5f0 100644
--- a/epan/dissectors/packet-mbtcp.c
+++ b/epan/dissectors/packet-mbtcp.c
@@ -460,7 +460,6 @@ dissect_modbus(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
guint32 group_byte_cnt, group_word_cnt;
guint8 function_code, exception_code, mei_code, event_code, object_type;
guint16 diagnostic_code;
- guint8 *object_str;
/* Don't need to do anything if there's no tree */
if (tree == NULL)
@@ -960,17 +959,15 @@ dissect_modbus(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
if (object_type < 7)
{
- object_str = tvb_get_string(tvb, payload_start+6+object_index, object_len);
- proto_tree_add_string(device_objects_item_tree, hf_modbus_object_str_value, tvb, payload_start+6+object_index, object_len, object_str);
- g_free(object_str);
- }
+ proto_tree_add_item(device_objects_item_tree, hf_modbus_object_str_value, tvb, payload_start+6+object_index, object_len, ENC_ASCII|ENC_NA);
+ }
else
{
if (object_len > 0)
proto_tree_add_text(device_objects_item_tree, tvb, payload_start+6+object_index, object_len, "Object Value");
- }
+ }
object_index += object_len;
- }
+ }
break;
case CANOPEN_REQ_RESP:
diff --git a/epan/dissectors/packet-meta.c b/epan/dissectors/packet-meta.c
index 177bad5a48..38bc7c2a90 100644
--- a/epan/dissectors/packet-meta.c
+++ b/epan/dissectors/packet-meta.c
@@ -317,7 +317,7 @@ static guint16 evaluate_meta_item_dxt(proto_tree *meta_tree, tvbuff_t *tvb, pack
proto_tree *item_tree;
proto_item *subti;
/* field values */
- guint8 dir, nsapi, rat, aal5proto, *apn, *calling, *called;
+ guint8 dir, nsapi, rat, aal5proto;
guint16 phylinkid, localdevid, remotedevid, tapgroupid;
guint32 tlli;
guint64 ts, imsi, imei, cell;
@@ -372,10 +372,8 @@ static guint16 evaluate_meta_item_dxt(proto_tree *meta_tree, tvbuff_t *tvb, pack
tvb, offs, 8, imei);
break;
case META_ID_APN:
- apn = tvb_get_string(tvb, offs, len);
- proto_tree_add_string(meta_tree, hf_meta_item_apn, tvb,
- offs, len, apn);
- g_free(apn);
+ proto_tree_add_item(meta_tree, hf_meta_item_apn, tvb,
+ offs, len, ENC_ASCII|ENC_NA);
break;
case META_ID_RAT:
rat = tvb_get_guint8(tvb, offs);
@@ -456,16 +454,12 @@ static guint16 evaluate_meta_item_dxt(proto_tree *meta_tree, tvbuff_t *tvb, pack
offs, 4, tlli);
break;
case META_ID_CALLING:
- calling = tvb_get_string(tvb, offs, len);
- proto_tree_add_string(meta_tree, hf_meta_item_calling, tvb,
- offs, len, calling);
- g_free(calling);
+ proto_tree_add_item(meta_tree, hf_meta_item_calling, tvb,
+ offs, len, ENC_ASCII|ENC_NA);
break;
case META_ID_CALLED:
- called = tvb_get_string(tvb, offs, len);
- proto_tree_add_string(meta_tree, hf_meta_item_called, tvb,
- offs, len, called);
- g_free(called);
+ proto_tree_add_item(meta_tree, hf_meta_item_called, tvb,
+ offs, len, ENC_ASCII|ENC_NA);
break;
default:
subti = proto_tree_add_item(meta_tree, hf_meta_item, tvb, offs - 4,
diff --git a/epan/dissectors/packet-mmse.c b/epan/dissectors/packet-mmse.c
index 62555e8398..36834b36ad 100644
--- a/epan/dissectors/packet-mmse.c
+++ b/epan/dissectors/packet-mmse.c
@@ -770,12 +770,11 @@ dissect_mmse(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint8 pdut,
major = (version & 0x70) >> 4;
minor = version & 0x0F;
if (minor == 0x0F)
- vers_string = g_strdup_printf("%u", major);
+ vers_string = ep_strdup_printf("%u", major);
else
- vers_string = g_strdup_printf("%u.%u", major, minor);
+ vers_string = ep_strdup_printf("%u.%u", major, minor);
proto_tree_add_string(mmse_tree, hf_mmse_mms_version,
tvb, offset - 2, 2, vers_string);
- g_free(vers_string);
}
break;
case MM_BCC_HDR: /* Encoded-string-value */
diff --git a/epan/dissectors/packet-mux27010.c b/epan/dissectors/packet-mux27010.c
index 692c661ee6..08b15d276b 100644
--- a/epan/dissectors/packet-mux27010.c
+++ b/epan/dissectors/packet-mux27010.c
@@ -800,7 +800,7 @@ getFrameInformation(tvbuff_t *tvb, proto_tree *field_tree){
char *information_field, *save_information_field_ptr;
/*Get the data from information field as string*/
- information_field = tvb_get_string(tvb,offset,length_info);
+ information_field = tvb_get_ephemeral_string(tvb,offset,length_info);
save_information_field_ptr = information_field;
tmp = 0;
@@ -831,7 +831,6 @@ getFrameInformation(tvbuff_t *tvb, proto_tree *field_tree){
/*Add info to subtree*/
proto_tree_add_uint_format(field_tree, hf_mux27010_information, tvb, offset, length_info, controlchannel_type_command, "Information: %s",information_field);
- g_free(information_field);
/*Increment offset by the length of chars in info field*/
offset +=length_info;
diff --git a/epan/dissectors/packet-ospf.c b/epan/dissectors/packet-ospf.c
index 000309deb1..78bd70ecb9 100644
--- a/epan/dissectors/packet-ospf.c
+++ b/epan/dissectors/packet-ospf.c
@@ -2403,9 +2403,6 @@ dissect_ospf_lsa_opaque_ri(tvbuff_t *tvb, int offset, proto_tree *tree,
proto_tree *ri_tree;
proto_tree *tlv_tree;
- guint8 *hostname_str;
- guint8 *unknown_str;
-
int tlv_type;
int tlv_length;
@@ -2443,9 +2440,7 @@ dissect_ospf_lsa_opaque_ri(tvbuff_t *tvb, int offset, proto_tree *tree,
proto_tree_add_text(tlv_tree, tvb, offset + 2, 2, "TLV Length: %u", tlv_length);
- hostname_str = tvb_get_string(tvb, offset+4, tlv_length);
- proto_tree_add_string(tlv_tree, hf_ospf_filter[OSPFF_DYN_HOSTNAME], tvb, offset+4, tlv_length, hostname_str);
- g_free(hostname_str);
+ proto_tree_add_item(tlv_tree, hf_ospf_filter[OSPFF_DYN_HOSTNAME], tvb, offset+4, tlv_length, ENC_ASCII|ENC_NA);
break;
default:
@@ -2458,9 +2453,7 @@ dissect_ospf_lsa_opaque_ri(tvbuff_t *tvb, int offset, proto_tree *tree,
proto_tree_add_text(tlv_tree, tvb, offset + 2, 2, "TLV Length: %u", tlv_length);
- unknown_str = tvb_get_string(tvb, offset+4, tlv_length);
- proto_tree_add_string(tlv_tree, hf_ospf_filter[OSPFF_UNKNOWN_TLV_TXT], tvb, offset+4, tlv_length, unknown_str);
- g_free(unknown_str);
+ proto_tree_add_item(tlv_tree, hf_ospf_filter[OSPFF_UNKNOWN_TLV_TXT], tvb, offset+4, tlv_length, ENC_ASCII|ENC_NA);
break;
}
diff --git a/epan/dissectors/packet-rpcap.c b/epan/dissectors/packet-rpcap.c
index e3de008361..9a9e7c48f0 100644
--- a/epan/dissectors/packet-rpcap.c
+++ b/epan/dissectors/packet-rpcap.c
@@ -735,14 +735,13 @@ dissect_rpcap_startcap_request (tvbuff_t *tvb, packet_info *pinfo,
proto_tree_add_item (field_tree, hf_flags_outbound, tvb, offset, 2, ENC_BIG_ENDIAN);
if (flags & 0x1F) {
- gchar *flagstr = g_strdup_printf ("%s%s%s%s%s",
+ gchar *flagstr = ep_strdup_printf ("%s%s%s%s%s",
(flags & FLAG_PROMISC) ? ", Promiscuous" : "",
(flags & FLAG_DGRAM) ? ", Datagram" : "",
(flags & FLAG_SERVEROPEN) ? ", ServerOpen" : "",
(flags & FLAG_INBOUND) ? ", Inbound" : "",
(flags & FLAG_OUTBOUND) ? ", Outbound" : "");
proto_item_append_text (field_ti, ":%s", &flagstr[1]);
- g_free (flagstr);
} else {
proto_item_append_text (field_ti, " (none)");
}
diff --git a/epan/dissectors/packet-tds.c b/epan/dissectors/packet-tds.c
index 59a4c4a0b2..2ee8b47a50 100644
--- a/epan/dissectors/packet-tds.c
+++ b/epan/dissectors/packet-tds.c
@@ -1161,7 +1161,7 @@ dissect_tds7_login(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
len *= 2;
val = (gchar*)tvb_get_ephemeral_string(tvb, offset2, len);
- val2 = g_malloc((len/2)+1);
+ val2 = ep_alloc((len/2)+1);
for(j = 0, k = 0; j < len; j += 2, k++) {
val[j] ^= 0xA5;
@@ -1174,7 +1174,6 @@ dissect_tds7_login(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
val2[k] = '\0'; /* Null terminate our new string */
proto_tree_add_text(login_tree, tvb, offset2, len, "%s: %s", val_to_str(i, login_field_names, "Unknown"), val2);
- g_free(val2);
}
}
}