diff options
author | Jakub Zawadzki <darkjames-ws@darkjames.pl> | 2012-03-31 20:57:15 +0000 |
---|---|---|
committer | Jakub Zawadzki <darkjames-ws@darkjames.pl> | 2012-03-31 20:57:15 +0000 |
commit | 80445e5a9977caf5d6c2a4555381d1b1d64a5018 (patch) | |
tree | 04a7a30a7af33c1f2c79b4d60b00d119f5ffb97e | |
parent | bb8afe3f688c137bc275354b4ffc36f766e154e5 (diff) |
Fix off by one shift errors introduced in r39530 where it seemed proper[1]
[1] I'm unsure of packet-dtpt, so I haven't patch it.
svn path=/trunk/; revision=41873
-rw-r--r-- | epan/dissectors/packet-gsm_a_dtap.c | 3 | ||||
-rw-r--r-- | epan/dissectors/packet-gsm_sms.c | 3 | ||||
-rw-r--r-- | epan/dissectors/packet-kerberos.c | 2 | ||||
-rw-r--r-- | epan/dissectors/packet-ms-mms.c | 16 | ||||
-rw-r--r-- | epan/dissectors/packet-ndps.c | 2 | ||||
-rw-r--r-- | epan/dissectors/packet-nflog.c | 2 | ||||
-rw-r--r-- | epan/dissectors/packet-per.c | 2 | ||||
-rw-r--r-- | epan/dissectors/packet-pnrp.c | 2 | ||||
-rw-r--r-- | epan/dissectors/packet-rdp.c | 2 | ||||
-rw-r--r-- | epan/dissectors/packet-srvloc.c | 8 | ||||
-rw-r--r-- | epan/dissectors/packet-tds.c | 44 | ||||
-rw-r--r-- | epan/dissectors/packet-tnef.c | 4 | ||||
-rw-r--r-- | epan/dissectors/packet-usb.c | 2 | ||||
-rw-r--r-- | epan/dissectors/packet-xml.c | 2 |
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"); |