aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--epan/dissectors/packet-gsm_a_dtap.c3
-rw-r--r--epan/dissectors/packet-gsm_sms.c3
-rw-r--r--epan/dissectors/packet-kerberos.c2
-rw-r--r--epan/dissectors/packet-ms-mms.c16
-rw-r--r--epan/dissectors/packet-ndps.c2
-rw-r--r--epan/dissectors/packet-nflog.c2
-rw-r--r--epan/dissectors/packet-per.c2
-rw-r--r--epan/dissectors/packet-pnrp.c2
-rw-r--r--epan/dissectors/packet-rdp.c2
-rw-r--r--epan/dissectors/packet-srvloc.c8
-rw-r--r--epan/dissectors/packet-tds.c44
-rw-r--r--epan/dissectors/packet-tnef.c4
-rw-r--r--epan/dissectors/packet-usb.c2
-rw-r--r--epan/dissectors/packet-xml.c2
14 files changed, 48 insertions, 46 deletions
diff --git a/epan/dissectors/packet-gsm_a_dtap.c b/epan/dissectors/packet-gsm_a_dtap.c
index b928c19a32..470751cdd8 100644
--- a/epan/dissectors/packet-gsm_a_dtap.c
+++ b/epan/dissectors/packet-gsm_a_dtap.c
@@ -742,8 +742,7 @@ de_network_name(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 off
}
else
{
- /* tvb_get_ephemeral_unicode_string takes the length in number of guint16's */
- net_name = tvb_get_ephemeral_unicode_string(tvb, curr_offset, ((len - 1) >> 1), ENC_BIG_ENDIAN);
+ net_name = tvb_get_ephemeral_unicode_string(tvb, curr_offset, (len - 1), ENC_BIG_ENDIAN);
proto_tree_add_text(tree, tvb, curr_offset, len - 1, "Text String: %s", net_name);
}
break;
diff --git a/epan/dissectors/packet-gsm_sms.c b/epan/dissectors/packet-gsm_sms.c
index 249ea9cf63..a5f1acf7a8 100644
--- a/epan/dissectors/packet-gsm_sms.c
+++ b/epan/dissectors/packet-gsm_sms.c
@@ -2799,8 +2799,7 @@ dis_field_ud(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint32 length, gb
g_free(utf8_text);
g_iconv_close(cd);
} else {
- /* tvb_get_ephemeral_unicode_string takes the length in number of guint16's */
- ustr = tvb_get_ephemeral_unicode_string(tvb, offset, (length>>1), ENC_BIG_ENDIAN);
+ ustr = tvb_get_ephemeral_unicode_string(tvb, offset, length, ENC_BIG_ENDIAN);
proto_tree_add_text(subtree, tvb, offset, length, "%s", ustr);
}
}
diff --git a/epan/dissectors/packet-kerberos.c b/epan/dissectors/packet-kerberos.c
index 3b8e9ef34e..c66b930dcd 100644
--- a/epan/dissectors/packet-kerberos.c
+++ b/epan/dissectors/packet-kerberos.c
@@ -2816,7 +2816,7 @@ dissect_krb5_PAC_CLIENT_INFO_TYPE(proto_tree *parent_tree, tvbuff_t *tvb, int of
offset+=2;
/* client name */
- name=tvb_get_ephemeral_unicode_string(tvb, offset, namelen/2, ENC_LITTLE_ENDIAN);
+ name=tvb_get_ephemeral_unicode_string(tvb, offset, namelen, ENC_LITTLE_ENDIAN);
proto_tree_add_string(tree, hf_krb_pac_clientname, tvb, offset, namelen, name);
offset+=namelen;
diff --git a/epan/dissectors/packet-ms-mms.c b/epan/dissectors/packet-ms-mms.c
index 24be0ffbd4..9b70c8989b 100644
--- a/epan/dissectors/packet-ms-mms.c
+++ b/epan/dissectors/packet-ms-mms.c
@@ -763,7 +763,7 @@ static void dissect_client_transport_info(tvbuff_t *tvb, packet_info *pinfo, pro
offset += 4;
/* Extract and show the string in tree and info column */
- transport_info = tvb_get_ephemeral_unicode_string(tvb, offset, (length_remaining - 20)/2, ENC_LITTLE_ENDIAN);
+ transport_info = tvb_get_ephemeral_unicode_string(tvb, offset, length_remaining - 20, ENC_LITTLE_ENDIAN);
proto_tree_add_string_format(tree, hf_msmms_command_client_transport_info, tvb,
offset, length_remaining-20,
@@ -864,7 +864,7 @@ static void dissect_server_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *t
/* Server version string */
if (server_version_length > 1)
{
- server_version = tvb_get_ephemeral_unicode_string(tvb, offset, server_version_length, ENC_LITTLE_ENDIAN);
+ server_version = tvb_get_ephemeral_unicode_string(tvb, offset, server_version_length*2, ENC_LITTLE_ENDIAN);
/* Server version string */
proto_tree_add_string(tree, hf_msmms_command_server_version, tvb,
@@ -880,7 +880,7 @@ static void dissect_server_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *t
/* Tool version string */
if (tool_version_length > 1)
{
- tool_version = tvb_get_ephemeral_unicode_string(tvb, offset, tool_version_length, ENC_LITTLE_ENDIAN);
+ tool_version = tvb_get_ephemeral_unicode_string(tvb, offset, tool_version_length*2, ENC_LITTLE_ENDIAN);
/* Server version string */
proto_tree_add_string(tree, hf_msmms_command_tool_version, tvb,
@@ -892,7 +892,7 @@ static void dissect_server_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *t
/* Download update player url string */
if (download_update_player_length > 1)
{
- download_update_player = tvb_get_ephemeral_unicode_string(tvb, offset, download_update_player_length, ENC_LITTLE_ENDIAN);
+ download_update_player = tvb_get_ephemeral_unicode_string(tvb, offset, download_update_player_length*2, ENC_LITTLE_ENDIAN);
proto_tree_add_string(tree, hf_msmms_command_update_url, tvb,
offset, download_update_player_length*2,
@@ -903,7 +903,7 @@ static void dissect_server_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *t
/* Password encryption type string */
if (password_encryption_type_length > 1)
{
- password_encryption_type = tvb_get_ephemeral_unicode_string(tvb, offset, password_encryption_type_length, ENC_LITTLE_ENDIAN);
+ password_encryption_type = tvb_get_ephemeral_unicode_string(tvb, offset, password_encryption_type_length*2, ENC_LITTLE_ENDIAN);
proto_tree_add_string(tree, hf_msmms_command_password_type, tvb,
offset, password_encryption_type_length*2,
@@ -929,7 +929,7 @@ static void dissect_client_player_info(tvbuff_t *tvb, packet_info *pinfo, proto_
offset += 4;
/* Extract and show the string in tree and info column */
- player_info = tvb_get_ephemeral_unicode_string(tvb, offset, (length_remaining - 12)/2, ENC_LITTLE_ENDIAN);
+ player_info = tvb_get_ephemeral_unicode_string(tvb, offset, length_remaining - 12, ENC_LITTLE_ENDIAN);
proto_tree_add_string(tree, hf_msmms_command_client_player_info, tvb,
offset, length_remaining-12,
@@ -1022,7 +1022,7 @@ static void dissect_request_server_file(tvbuff_t *tvb, packet_info *pinfo, proto
offset += 4;
/* File path on server */
- server_file = tvb_get_ephemeral_unicode_string(tvb, offset, (length_remaining - 16)/2, ENC_LITTLE_ENDIAN);
+ server_file = tvb_get_ephemeral_unicode_string(tvb, offset, length_remaining - 16, ENC_LITTLE_ENDIAN);
proto_tree_add_string(tree, hf_msmms_command_server_file, tvb,
offset, length_remaining-16,
@@ -1112,7 +1112,7 @@ static void dissect_transport_info_response(tvbuff_t *tvb, proto_tree *tree,
offset += 4;
/* Read this strange string */
- strange_string = tvb_get_ephemeral_unicode_string(tvb, offset, (length_remaining - 12)/2, ENC_LITTLE_ENDIAN);
+ strange_string = tvb_get_ephemeral_unicode_string(tvb, offset, length_remaining - 12, ENC_LITTLE_ENDIAN);
proto_tree_add_string(tree, hf_msmms_command_strange_string, tvb,
offset, length_remaining-12,
diff --git a/epan/dissectors/packet-ndps.c b/epan/dissectors/packet-ndps.c
index 74e3ad2b9c..ebdca22553 100644
--- a/epan/dissectors/packet-ndps.c
+++ b/epan/dissectors/packet-ndps.c
@@ -2034,7 +2034,7 @@ ndps_string(tvbuff_t* tvb, int hfinfo, proto_tree *ndps_tree, int offset, char *
/*
* Unicode.
*/
- string = tvb_get_ephemeral_unicode_string(tvb, foffset, str_length/2, ENC_LITTLE_ENDIAN);
+ string = tvb_get_ephemeral_unicode_string(tvb, foffset, str_length, ENC_LITTLE_ENDIAN);
}
foffset += str_length;
proto_tree_add_string(ndps_tree, hfinfo, tvb, offset, str_length + 4, string);
diff --git a/epan/dissectors/packet-nflog.c b/epan/dissectors/packet-nflog.c
index ef44143dc9..3b651c95c2 100644
--- a/epan/dissectors/packet-nflog.c
+++ b/epan/dissectors/packet-nflog.c
@@ -1,5 +1,5 @@
/* packet-nflog.c
- * Copyright 2011,2012 Jekub Zawadzki <darkjames-ws@darkjames.pl>
+ * Copyright 2011,2012 Jakub Zawadzki <darkjames-ws@darkjames.pl>
*
* $Id$
*
diff --git a/epan/dissectors/packet-per.c b/epan/dissectors/packet-per.c
index 2ac545ccee..584a2701ea 100644
--- a/epan/dissectors/packet-per.c
+++ b/epan/dissectors/packet-per.c
@@ -771,7 +771,7 @@ dissect_per_BMPString(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tre
length=1024;
}
- str = tvb_get_ephemeral_unicode_string(tvb, offset>>3, length, ENC_BIG_ENDIAN);
+ str = tvb_get_ephemeral_unicode_string(tvb, offset>>3, length*2, ENC_BIG_ENDIAN);
proto_tree_add_string(tree, hf_index, tvb, offset>>3, length*2, str);
diff --git a/epan/dissectors/packet-pnrp.c b/epan/dissectors/packet-pnrp.c
index f10dbc61ed..3ebb6cb678 100644
--- a/epan/dissectors/packet-pnrp.c
+++ b/epan/dissectors/packet-pnrp.c
@@ -685,7 +685,7 @@ static int dissect_pnrp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
/* Entry Length: Must be 0x0002 */
proto_tree_add_item(pnrp_message_tree, hf_pnrp_message_classifier_entryLength, tvb, offset + 10, 2, ENC_BIG_ENDIAN);
/* The actual classifier String */
- proto_tree_add_text(pnrp_message_tree, tvb, offset + 12, tvb_get_ntohs(tvb,offset+6)-8, "Classifier: %s",tvb_get_ephemeral_unicode_string(tvb, offset + 12, (tvb_get_ntohs(tvb,offset+6)-8)/2, ENC_BIG_ENDIAN));
+ proto_tree_add_text(pnrp_message_tree, tvb, offset + 12, tvb_get_ntohs(tvb,offset+6)-8, "Classifier: %s",tvb_get_ephemeral_unicode_string(tvb, offset + 12, tvb_get_ntohs(tvb,offset+6)-8, ENC_BIG_ENDIAN));
}
/* There might be padding, so fill up to the next byte */
diff --git a/epan/dissectors/packet-rdp.c b/epan/dissectors/packet-rdp.c
index 12d5d98e52..09b1706b16 100644
--- a/epan/dissectors/packet-rdp.c
+++ b/epan/dissectors/packet-rdp.c
@@ -832,7 +832,7 @@ dissect_rdp_fields(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tr
REPORT_DISSECTOR_BUG("Error!!!!!\n");
if(c->flags & RDP_FI_UNICODE) {
- string = tvb_get_ephemeral_unicode_string(tvb, offset, len/2, ENC_LITTLE_ENDIAN);
+ string = tvb_get_ephemeral_unicode_string(tvb, offset, len, ENC_LITTLE_ENDIAN);
proto_item_append_text(pi, " (%s)", string);
}
diff --git a/epan/dissectors/packet-srvloc.c b/epan/dissectors/packet-srvloc.c
index be1954b85f..6ce17c0a7b 100644
--- a/epan/dissectors/packet-srvloc.c
+++ b/epan/dissectors/packet-srvloc.c
@@ -416,7 +416,7 @@ 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_get_ephemeral_unicode_string(tvb, offset, length/2, ENC_BIG_ENDIAN);
+ unicode_str = tvb_get_ephemeral_unicode_string(tvb, offset, length, ENC_BIG_ENDIAN);
proto_tree_add_string(tree, hf, tvb, offset, length,
unicode_str);
break;
@@ -545,14 +545,14 @@ attr_list(proto_tree *tree, int hf, tvbuff_t *tvb, int offset, int length,
break;
}
/* Parse the attribute name */
- tmp = tvb_get_ephemeral_unicode_string(tvb, offset, (length-offset)/2, ENC_BIG_ENDIAN);
+ tmp = tvb_get_ephemeral_unicode_string(tvb, offset, length-offset, ENC_BIG_ENDIAN);
type_len = (int)strcspn(tmp, "=");
- attr_type = tvb_get_ephemeral_unicode_string(tvb, offset, type_len, ENC_BIG_ENDIAN);
+ attr_type = tvb_get_ephemeral_unicode_string(tvb, offset, type_len*2, ENC_BIG_ENDIAN);
proto_tree_add_string(tree, hf, tvb, offset, type_len*2, attr_type);
offset += (type_len*2)+2;
/* If this is the attribute svcname */
if (strcmp(attr_type, "svcname-ws")==0) {
- tmp = tvb_get_ephemeral_unicode_string(tvb, offset, (length-offset)/2, ENC_BIG_ENDIAN);
+ tmp = tvb_get_ephemeral_unicode_string(tvb, offset, length-offset, ENC_BIG_ENDIAN);
type_len = (int)strcspn(tmp, ")");
add_v1_string(tree, hf_srvloc_srvrply_svcname, tvb, offset, type_len*2, encoding);
offset += (type_len*2)+4;
diff --git a/epan/dissectors/packet-tds.c b/epan/dissectors/packet-tds.c
index 7a696c767c..7f9f658a89 100644
--- a/epan/dissectors/packet-tds.c
+++ b/epan/dissectors/packet-tds.c
@@ -967,7 +967,7 @@ dissect_tds_query_packet(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
is_unicode = FALSE;
if (is_unicode)
- msg = tvb_get_ephemeral_unicode_string(tvb, offset, len/2, ENC_LITTLE_ENDIAN);
+ msg = tvb_get_ephemeral_unicode_string(tvb, offset, len, ENC_LITTLE_ENDIAN);
else
msg = (gchar*)tvb_get_ephemeral_string(tvb, offset, len);
@@ -986,7 +986,7 @@ dissect_tds5_lang_token(tvbuff_t *tvb, guint offset, guint len, proto_tree *tree
len -= 1;
if (is_unicode)
- msg = tvb_get_ephemeral_unicode_string(tvb, offset, (len)/2, ENC_LITTLE_ENDIAN);
+ msg = tvb_get_ephemeral_unicode_string(tvb, offset, len, ENC_LITTLE_ENDIAN);
else
msg = (gchar*)tvb_get_ephemeral_string(tvb, offset, len);
@@ -1149,8 +1149,8 @@ dissect_tds7_login(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
if (len != 0) {
if( i != 2) {
/* tds 7 is always unicode */
- val = tvb_get_ephemeral_unicode_string(tvb, offset2, len, ENC_LITTLE_ENDIAN);
len *= 2;
+ val = tvb_get_ephemeral_unicode_string(tvb, offset2, len, ENC_LITTLE_ENDIAN);
proto_tree_add_text(login_tree, tvb, offset2, len, "%s: %s", val_to_str(i, login_field_names, "Unknown"), val);
} else {
/* This field is the password. We retrieve it from the packet
@@ -1465,9 +1465,9 @@ dissect_tds_env_chg(tvbuff_t *tvb, guint offset, guint token_sz,
if (env_type != 7) { /* if it's not 'Collation Info - which is not textual! */
string_offset = offset + 2;
if (is_unicode == TRUE) {
+ new_len *= 2;
new_val = tvb_get_ephemeral_unicode_string(tvb, string_offset,
new_len, ENC_LITTLE_ENDIAN);
- new_len *= 2;
} else
new_val = (gchar*)tvb_get_ephemeral_string(tvb, string_offset, new_len);
proto_tree_add_text(tree, tvb, string_offset, new_len,
@@ -1492,9 +1492,9 @@ dissect_tds_env_chg(tvbuff_t *tvb, guint offset, guint token_sz,
if (old_len) {
string_offset = old_len_offset + 1;
if (is_unicode == TRUE) {
+ old_len *= 2;
old_val = tvb_get_ephemeral_unicode_string(tvb, string_offset,
old_len, ENC_LITTLE_ENDIAN);
- old_len *= 2;
} else
old_val = (gchar*)tvb_get_ephemeral_string(tvb, string_offset, old_len);
proto_tree_add_text(tree, tvb, string_offset, old_len,
@@ -1525,8 +1525,8 @@ dissect_tds_err_token(tvbuff_t *tvb, guint offset, guint token_sz _U_, proto_tre
is_unicode = TRUE;
if(is_unicode) {
- msg = tvb_get_ephemeral_unicode_string(tvb, offset, msg_len, ENC_LITTLE_ENDIAN);
msg_len *= 2;
+ msg = tvb_get_ephemeral_unicode_string(tvb, offset, msg_len, ENC_LITTLE_ENDIAN);
} else {
msg = (gchar*)tvb_get_ephemeral_string(tvb, offset, msg_len);
}
@@ -1539,8 +1539,8 @@ dissect_tds_err_token(tvbuff_t *tvb, guint offset, guint token_sz _U_, proto_tre
offset +=1;
if(srvr_len) {
if (is_unicode) {
- msg = tvb_get_ephemeral_unicode_string(tvb, offset, srvr_len, ENC_LITTLE_ENDIAN);
srvr_len *=2;
+ msg = tvb_get_ephemeral_unicode_string(tvb, offset, srvr_len, ENC_LITTLE_ENDIAN);
} else {
msg = (gchar*)tvb_get_ephemeral_string(tvb, offset, srvr_len);
}
@@ -1554,8 +1554,8 @@ dissect_tds_err_token(tvbuff_t *tvb, guint offset, guint token_sz _U_, proto_tre
offset +=1;
if(proc_len) {
if (is_unicode) {
- msg = tvb_get_ephemeral_unicode_string(tvb, offset, proc_len, ENC_LITTLE_ENDIAN);
proc_len *=2;
+ msg = tvb_get_ephemeral_unicode_string(tvb, offset, proc_len, ENC_LITTLE_ENDIAN);
} else {
msg = (gchar*)tvb_get_ephemeral_string(tvb, offset, proc_len);
}
@@ -1590,8 +1590,8 @@ dissect_tds_login_ack_token(tvbuff_t *tvb, guint offset, guint token_sz, proto_t
is_unicode = TRUE;
proto_tree_add_text(tree, tvb, offset, 0, "msg_len: %d, token_sz: %d, total: %d",msg_len, token_sz, msg_len + 6U + 3U);
if(is_unicode) {
- msg = tvb_get_ephemeral_unicode_string(tvb, offset, msg_len, ENC_LITTLE_ENDIAN);
msg_len *= 2;
+ msg = tvb_get_ephemeral_unicode_string(tvb, offset, msg_len, ENC_LITTLE_ENDIAN);
} else {
msg = (gchar*)tvb_get_ephemeral_string(tvb, offset, msg_len);
}
@@ -1643,9 +1643,10 @@ dissect_tds7_results_token(tvbuff_t *tvb, guint offset, proto_tree *tree)
table_len = tvb_get_letohs(tvb, offset);
offset +=2;
if(table_len != 0) {
+ table_len *= 2;
msg = tvb_get_ephemeral_unicode_string(tvb, offset, table_len, ENC_LITTLE_ENDIAN);
- proto_tree_add_text(tree, tvb, offset, table_len*2, "Table name: %s", msg);
- offset += table_len*2;
+ proto_tree_add_text(tree, tvb, offset, table_len, "Table name: %s", msg);
+ offset += table_len;
}
}
else if (type == 106 || type == 108) {
@@ -1671,9 +1672,10 @@ dissect_tds7_results_token(tvbuff_t *tvb, guint offset, proto_tree *tree)
proto_tree_add_text(tree, tvb, offset, 1, "message length: %d",msg_len);
offset += 1;
if(msg_len != 0) {
+ msg_len *= 2;
msg = tvb_get_ephemeral_unicode_string(tvb, offset, msg_len, ENC_LITTLE_ENDIAN);
- proto_tree_add_text(tree, tvb, offset, msg_len*2, "Text: %s", msg);
- offset += msg_len*2;
+ proto_tree_add_text(tree, tvb, offset, msg_len, "Text: %s", msg);
+ offset += msg_len;
}
}
return offset;
@@ -1864,7 +1866,7 @@ dissect_tds_type_varbyte(tvbuff_t *tvb, guint *offset, packet_info *pinfo, proto
proto_tree_add_item(sub_tree, hf_tds_type_varbyte_data_string, tvb, *offset, length, ENC_ASCII|ENC_NA);
break;
case TDS_DATA_TYPE_NVARCHAR: /* NVarChar */
- string_value = tvb_get_ephemeral_unicode_string(tvb, *offset, length / 2, ENC_LITTLE_ENDIAN);
+ string_value = tvb_get_ephemeral_unicode_string(tvb, *offset, length, ENC_LITTLE_ENDIAN);
proto_tree_add_string(sub_tree, hf_tds_type_varbyte_data_string, tvb, *offset, length, string_value);
break;
case TDS_DATA_TYPE_XML: /* XML (introduced in TDS 7.2) */
@@ -2018,7 +2020,7 @@ dissect_tds_type_varbyte(tvbuff_t *tvb, guint *offset, packet_info *pinfo, proto
break;
case TDS_DATA_TYPE_NVARCHAR: /* NVarChar */
case TDS_DATA_TYPE_NCHAR: /* NChar */
- string_value = tvb_get_ephemeral_unicode_string(tvb, *offset, length / 2, ENC_LITTLE_ENDIAN);
+ string_value = tvb_get_ephemeral_unicode_string(tvb, *offset, length, ENC_LITTLE_ENDIAN);
proto_tree_add_string(sub_tree, hf_tds_type_varbyte_data_string, tvb, *offset, length, string_value);
break;
default:
@@ -2045,7 +2047,7 @@ dissect_tds_type_varbyte(tvbuff_t *tvb, guint *offset, packet_info *pinfo, proto
else {
switch(data_type) {
case TDS_DATA_TYPE_NTEXT: /* NText */
- string_value = tvb_get_ephemeral_unicode_string(tvb, *offset, length / 2, ENC_LITTLE_ENDIAN);
+ string_value = tvb_get_ephemeral_unicode_string(tvb, *offset, length, ENC_LITTLE_ENDIAN);
proto_tree_add_string(sub_tree, hf_tds_type_varbyte_data_string, tvb, *offset, length, string_value);
break;
default: /*TODO*/
@@ -2099,9 +2101,10 @@ dissect_tds_rpc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
offset += 2;
}
else if (len != 0) {
+ len *= 2;
val = tvb_get_ephemeral_unicode_string(tvb, offset, len, ENC_LITTLE_ENDIAN);
- proto_tree_add_string(tree, hf_tds_rpc_name, tvb, offset, len * 2, val);
- offset += len * 2;
+ proto_tree_add_string(tree, hf_tds_rpc_name, tvb, offset, len, val);
+ offset += len;
}
break;
}
@@ -2128,9 +2131,10 @@ dissect_tds_rpc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
proto_tree_add_item(sub_tree, hf_tds_rpc_parameter_name_length, tvb, offset, 1, ENC_LITTLE_ENDIAN);
++offset;
if(len) {
+ len *= 2;
val = tvb_get_ephemeral_unicode_string(tvb, offset, len, ENC_LITTLE_ENDIAN);
- proto_tree_add_string(sub_tree, hf_tds_rpc_parameter_name, tvb, offset, len * 2, val);
- offset += len * 2;
+ proto_tree_add_string(sub_tree, hf_tds_rpc_parameter_name, tvb, offset, len, val);
+ offset += len;
}
item = proto_tree_add_item(sub_tree, hf_tds_rpc_parameter_status, tvb, offset, 1, ENC_LITTLE_ENDIAN);
status_sub_tree = proto_item_add_subtree(item, ett_tds_rpc_parameter_status);
diff --git a/epan/dissectors/packet-tnef.c b/epan/dissectors/packet-tnef.c
index bd5943f3e6..e0308cf9e0 100644
--- a/epan/dissectors/packet-tnef.c
+++ b/epan/dissectors/packet-tnef.c
@@ -271,7 +271,7 @@ static gint dissect_counted_values(tvbuff_t *tvb, gint offset, int hf_id, packe
offset += 4;
if (unicode) {
- char *unicode_str = tvb_get_ephemeral_unicode_string(tvb, offset, length/2, ENC_LITTLE_ENDIAN);
+ char *unicode_str = tvb_get_ephemeral_unicode_string(tvb, offset, length, ENC_LITTLE_ENDIAN);
proto_tree_add_string(tree, hf_id, tvb, offset, length, unicode_str);
} else {
proto_tree_add_item(tree, hf_id, tvb, offset, length, FALSE);
@@ -408,7 +408,7 @@ static void dissect_mapiprops(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre
proto_tree_add_item(tag_tree, hf_tnef_property_tag_name_length, tvb, offset, 4, ENC_LITTLE_ENDIAN);
offset += 4;
- name_string = tvb_get_ephemeral_unicode_string (tvb, offset, tag_length / 2, ENC_LITTLE_ENDIAN);
+ name_string = tvb_get_ephemeral_unicode_string (tvb, offset, tag_length, ENC_LITTLE_ENDIAN);
proto_tree_add_string_format(tag_tree, hf_tnef_property_tag_name_string, tvb, offset,
tag_length, name_string, "Name: %s", name_string);
offset += tag_length;
diff --git a/epan/dissectors/packet-usb.c b/epan/dissectors/packet-usb.c
index 9e7c90233d..73ea3d5ccb 100644
--- a/epan/dissectors/packet-usb.c
+++ b/epan/dissectors/packet-usb.c
@@ -1005,7 +1005,7 @@ dissect_usb_string_descriptor(packet_info *pinfo _U_, proto_tree *parent_tree, t
char *str;
/* unicode string */
- str=tvb_get_ephemeral_unicode_string(tvb, offset, (len-2)/2, ENC_LITTLE_ENDIAN);
+ str=tvb_get_ephemeral_unicode_string(tvb, offset, len-2, ENC_LITTLE_ENDIAN);
proto_tree_add_string(tree, hf_usb_bString, tvb, offset, len-2, str);
offset += len-2;
}
diff --git a/epan/dissectors/packet-xml.c b/epan/dissectors/packet-xml.c
index 9daef272d2..921e07abd0 100644
--- a/epan/dissectors/packet-xml.c
+++ b/epan/dissectors/packet-xml.c
@@ -232,7 +232,7 @@ static gboolean dissect_xml_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *
dissect_xml(tvb, pinfo, tree);
return TRUE;
} else if (pref_heuristic_unicode) {
- const guint8 *data = tvb_get_ephemeral_unicode_string(tvb, 0, tvb_length(tvb)/2, ENC_LITTLE_ENDIAN);
+ const guint8 *data = tvb_get_ephemeral_unicode_string(tvb, 0, tvb_length(tvb), ENC_LITTLE_ENDIAN);
tvbuff_t *unicode_tvb = tvb_new_child_real_data(tvb, data, tvb_length(tvb)/2, tvb_length(tvb)/2);
if (tvbparse_peek(tvbparse_init(unicode_tvb,0,-1,NULL,want_ignore), want_heur)) {
add_new_data_source(pinfo, unicode_tvb, "UTF8");