diff options
-rw-r--r-- | epan/dissectors/packet-dcerpc-nt.c | 6 | ||||
-rw-r--r-- | epan/dissectors/packet-gsm_sms.c | 5 | ||||
-rw-r--r-- | epan/dissectors/packet-kerberos.c | 3 | ||||
-rw-r--r-- | epan/dissectors/packet-ms-mms.c | 41 | ||||
-rw-r--r-- | epan/dissectors/packet-ntlmssp.c | 6 | ||||
-rw-r--r-- | epan/dissectors/packet-per.c | 3 | ||||
-rw-r--r-- | epan/dissectors/packet-srvloc.c | 9 |
7 files changed, 19 insertions, 54 deletions
diff --git a/epan/dissectors/packet-dcerpc-nt.c b/epan/dissectors/packet-dcerpc-nt.c index 7033a80473..2f1eaa45fe 100644 --- a/epan/dissectors/packet-dcerpc-nt.c +++ b/epan/dissectors/packet-dcerpc-nt.c @@ -986,7 +986,6 @@ dissect_ndr_uint16s(tvbuff_t *tvb, gint offset, packet_info *pinfo, /* * Helper routines for dissecting NDR strings */ - void cb_wstr_postprocess(packet_info *pinfo, proto_tree *tree _U_, proto_item *item, tvbuff_t *tvb, int start_offset, int end_offset, @@ -1014,7 +1013,7 @@ void cb_wstr_postprocess(packet_info *pinfo, proto_tree *tree _U_, * some way we can get that string, rather than duplicating the * efforts of that routine? */ - s = tvb_fake_unicode( + s = tvb_get_ephemeral_faked_unicode( tvb, start_offset + 12, (end_offset - start_offset - 12) / 2, TRUE); @@ -1049,10 +1048,9 @@ void cb_wstr_postprocess(packet_info *pinfo, proto_tree *tree _U_, dcerpc_info *di = (dcerpc_info *)pinfo->private_data; dcerpc_call_value *dcv = (dcerpc_call_value *)di->call_data; +/* FIXME EPHEMERAL need to get rid of the g_strdup() and later g_free() */ dcv->private_data = g_strdup(s); } - - g_free(s); } void cb_str_postprocess(packet_info *pinfo, proto_tree *tree _U_, diff --git a/epan/dissectors/packet-gsm_sms.c b/epan/dissectors/packet-gsm_sms.c index fff7a72a3f..266dbe43c6 100644 --- a/epan/dissectors/packet-gsm_sms.c +++ b/epan/dissectors/packet-gsm_sms.c @@ -1852,10 +1852,9 @@ dis_field_ud(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint32 length, gb } else if (ucs2) { - /* tvb_fake_unicode takes the lengt in number of guint16's */ - ustr = tvb_fake_unicode(tvb, offset, (length>>1), FALSE); + /* tvb_get_ephemeral_faked_unicode takes the lengt in number of guint16's */ + ustr = tvb_get_ephemeral_faked_unicode(tvb, offset, (length>>1), FALSE); proto_tree_add_text(subtree, tvb, offset, length, "%s", ustr); - g_free(ustr); } } } diff --git a/epan/dissectors/packet-kerberos.c b/epan/dissectors/packet-kerberos.c index 740b2bd35b..6abd9fe14e 100644 --- a/epan/dissectors/packet-kerberos.c +++ b/epan/dissectors/packet-kerberos.c @@ -2323,9 +2323,8 @@ dissect_krb5_PAC_CLIENT_INFO_TYPE(packet_info *pinfo _U_, proto_tree *parent_tre offset+=2; /* client name */ - name=tvb_fake_unicode(tvb, offset, namelen/2, TRUE); + name=tvb_get_ephemeral_faked_unicode(tvb, offset, namelen/2, TRUE); proto_tree_add_string(tree, hf_krb_pac_clientname, tvb, offset, namelen, name); - g_free(name); offset+=namelen; return offset; diff --git a/epan/dissectors/packet-ms-mms.c b/epan/dissectors/packet-ms-mms.c index 91676db384..8d7a5e92fd 100644 --- a/epan/dissectors/packet-ms-mms.c +++ b/epan/dissectors/packet-ms-mms.c @@ -787,7 +787,7 @@ void dissect_client_transport_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree offset += 4; /* Extract and show the string in tree and info column */ - transport_info = tvb_fake_unicode(tvb, offset, (length_remaining - 20)/2, TRUE); + transport_info = tvb_get_ephemeral_faked_unicode(tvb, offset, (length_remaining - 20)/2, TRUE); proto_tree_add_string_format(tree, hf_msmms_command_client_transport_info, tvb, offset, length_remaining-20, @@ -836,9 +836,6 @@ void dissect_client_transport_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree msmms_data_add_address(pinfo, &addr, pt, port); } } - - /* Can now free this string */ - g_free(transport_info); } /* Dissect server data */ @@ -902,7 +899,7 @@ void dissect_server_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, /* Server version string */ if (server_version_length > 1) { - server_version = tvb_fake_unicode(tvb, offset, server_version_length, TRUE); + server_version = tvb_get_ephemeral_faked_unicode(tvb, offset, server_version_length, TRUE); /* Server version string */ proto_tree_add_string(tree, hf_msmms_command_server_version, tvb, @@ -914,10 +911,6 @@ void dissect_server_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, col_append_fstr(pinfo->cinfo, COL_INFO, " (version='%s')", format_text(server_version, server_version_length)); } - - - /* Can now free this string */ - g_free(server_version); } offset += (server_version_length*2); @@ -925,43 +918,34 @@ void dissect_server_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, /* Tool version string */ if (tool_version_length > 1) { - tool_version = tvb_fake_unicode(tvb, offset, tool_version_length, TRUE); + tool_version = tvb_get_ephemeral_faked_unicode(tvb, offset, tool_version_length, TRUE); /* Server version string */ proto_tree_add_string(tree, hf_msmms_command_tool_version, tvb, offset, tool_version_length*2, format_text(tool_version, tool_version_length)); - - /* Can now free this string */ - g_free(tool_version); } offset += (tool_version_length*2); /* Download update player url string */ if (download_update_player_length > 1) { - download_update_player = tvb_fake_unicode(tvb, offset, download_update_player_length, TRUE); + download_update_player = tvb_get_ephemeral_faked_unicode(tvb, offset, download_update_player_length, TRUE); proto_tree_add_string(tree, hf_msmms_command_update_url, tvb, offset, download_update_player_length*2, download_update_player); - - /* Can now free this string */ - g_free(download_update_player); } offset += (download_update_player_length*2); /* Password encryption type string */ if (password_encryption_type_length > 1) { - password_encryption_type = tvb_fake_unicode(tvb, offset, password_encryption_type_length, TRUE); + password_encryption_type = tvb_get_ephemeral_faked_unicode(tvb, offset, password_encryption_type_length, TRUE); proto_tree_add_string(tree, hf_msmms_command_password_type, tvb, offset, password_encryption_type_length*2, password_encryption_type); - - /* Can now free this string */ - g_free(password_encryption_type); } offset += (password_encryption_type_length*2); @@ -984,7 +968,7 @@ void dissect_client_player_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *t offset += 4; /* Extract and show the string in tree and info column */ - player_info = tvb_fake_unicode(tvb, offset, (length_remaining - 12)/2, TRUE); + player_info = tvb_get_ephemeral_faked_unicode(tvb, offset, (length_remaining - 12)/2, TRUE); proto_tree_add_string(tree, hf_msmms_command_client_player_info, tvb, offset, length_remaining-12, @@ -995,9 +979,6 @@ void dissect_client_player_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *t col_append_fstr(pinfo->cinfo, COL_INFO, " (%s)", format_text(player_info, (length_remaining - 12)/2)); } - - /* Can now free this string */ - g_free(player_info); } /* Dissect info about where client wants to start playing from */ @@ -1101,7 +1082,7 @@ void dissect_request_server_file(tvbuff_t *tvb, packet_info *pinfo, proto_tree * offset += 4; /* File path on server */ - server_file = tvb_fake_unicode(tvb, offset, (length_remaining - 16)/2, TRUE); + server_file = tvb_get_ephemeral_faked_unicode(tvb, offset, (length_remaining - 16)/2, TRUE); proto_tree_add_string(tree, hf_msmms_command_server_file, tvb, offset, length_remaining-16, @@ -1112,9 +1093,6 @@ void dissect_request_server_file(tvbuff_t *tvb, packet_info *pinfo, proto_tree * col_append_fstr(pinfo->cinfo, COL_INFO, " (%s)", format_text(server_file, (length_remaining - 16)/2)); } - - /* Can now free this string */ - g_free(server_file); } /* Dissect media details from server */ @@ -1207,14 +1185,11 @@ void dissect_transport_info_response(tvbuff_t *tvb, proto_tree *tree, offset += 4; /* Read this strange string */ - strange_string = tvb_fake_unicode(tvb, offset, (length_remaining - 12)/2, TRUE); + strange_string = tvb_get_ephemeral_faked_unicode(tvb, offset, (length_remaining - 12)/2, TRUE); proto_tree_add_string(tree, hf_msmms_command_strange_string, tvb, offset, length_remaining-12, strange_string); - - /* Can now free this string */ - g_free(strange_string); } /* Media stream MBR selector */ diff --git a/epan/dissectors/packet-ntlmssp.c b/epan/dissectors/packet-ntlmssp.c index 1a48a3ef7f..7181aa8aea 100644 --- a/epan/dissectors/packet-ntlmssp.c +++ b/epan/dissectors/packet-ntlmssp.c @@ -694,14 +694,14 @@ dissect_ntlmv2_response(tvbuff_t *tvb, proto_tree *tree, int offset, int len) /* Dissect name */ if (name_len > 0) { - name = tvb_fake_unicode( + name = tvb_get_ephemeral_faked_unicode( tvb, offset, name_len / 2, TRUE); proto_tree_add_text( name_tree, tvb, offset, name_len, "Name: %s", name); } else - name = g_strdup("NULL"); + name = "NULL"; if (name_type == 0) proto_item_append_text( @@ -714,8 +714,6 @@ dissect_ntlmv2_response(tvbuff_t *tvb, proto_tree *tree, int offset, int len) val_to_str(name_type, ntlm_name_types, "Unknown"), name); - g_free(name); - offset += name_len; proto_item_set_len(name_item, name_len + 4); diff --git a/epan/dissectors/packet-per.c b/epan/dissectors/packet-per.c index e6c29ec986..f5007ddc9a 100644 --- a/epan/dissectors/packet-per.c +++ b/epan/dissectors/packet-per.c @@ -484,10 +484,9 @@ dissect_per_BMPString(tvbuff_t *tvb, guint32 offset, packet_info *pinfo, proto_t length=1024; } - str = tvb_fake_unicode(tvb, offset>>3, length, FALSE); + str = tvb_get_ephemeral_faked_unicode(tvb, offset>>3, length, FALSE); proto_tree_add_string(tree, hf_index, tvb, offset>>3, length*2, str); - g_free(str); offset+=(length<<3)*2; diff --git a/epan/dissectors/packet-srvloc.c b/epan/dissectors/packet-srvloc.c index c4dee7ee27..56dd72ce6c 100644 --- a/epan/dissectors/packet-srvloc.c +++ b/epan/dissectors/packet-srvloc.c @@ -414,10 +414,9 @@ add_v1_string(proto_tree *tree, int hf, tvbuff_t *tvb, int offset, int length, switch (encoding) { case CHARSET_ISO_10646_UCS_2: - unicode_str = tvb_fake_unicode(tvb, offset, length/2, FALSE); + unicode_str = tvb_get_ephemeral_faked_unicode(tvb, offset, length/2, FALSE); proto_tree_add_string(tree, hf, tvb, offset, length, unicode_str); - g_free(unicode_str); break; default: @@ -508,12 +507,10 @@ attr_list(proto_tree *tree, int hf, tvbuff_t *tvb, int offset, int length, case CHARSET_ISO_10646_UCS_2: - tmp = tvb_fake_unicode(tvb, offset, length/2, FALSE); + tmp = tvb_get_ephemeral_faked_unicode(tvb, offset, length/2, FALSE); type_len = strcspn(tmp, "="); - g_free(tmp); - attr_type = tvb_fake_unicode(tvb, offset+2, type_len-1, FALSE); + attr_type = tvb_get_ephemeral_faked_unicode(tvb, offset+2, type_len-1, FALSE); proto_tree_add_string(tree, hf, tvb, offset, type_len*2, attr_type); - g_free(attr_type); i=1; for (foffset = offset + ((type_len*2)+2); foffset<length; foffset += 2) { |