epan: Fix bogus string truncations found with a search
Fix some unnecessary string truncations that look bogus to me. Forcing a given UTF-8 byte length for no reason will in most cases produce encoding errors. Fixes #18548.
This commit is contained in:
parent
40ec1adfb0
commit
0157d74c44
|
@ -130,7 +130,7 @@ dissect_sta_ack(tvbuff_t * const tvb, packet_info * const pinfo, proto_tree * co
|
|||
|
||||
/* add the data channel bond sub-tree item */
|
||||
bond_item = proto_tree_add_item(tree, hf_cl3dcw_dcbond, tvb, offset, 6, ENC_NA);
|
||||
proto_item_append_text(bond_item, " -> \"%.*s\"", (guint)ssid_len, ssidbuf);
|
||||
proto_item_append_text(bond_item, " -> \"%s\"", ssidbuf);
|
||||
proto_item_set_len(bond_item, 6 + 1 + ssid_len);
|
||||
bond_tree = proto_item_add_subtree(bond_item, ett_cl3dcw_dcbond);
|
||||
|
||||
|
@ -143,8 +143,7 @@ dissect_sta_ack(tvbuff_t * const tvb, packet_info * const pinfo, proto_tree * co
|
|||
* without printing it in the string... i suspect there is a better way of doing this
|
||||
*/
|
||||
proto_tree_add_string_format(bond_tree, hf_cl3dcw_dcssid, tvb, offset, 1 + ssid_len,
|
||||
"", "Data Channel SSID: %.*s",
|
||||
(guint)ssid_len, ssidbuf);
|
||||
"", "Data Channel SSID: %s", ssidbuf);
|
||||
offset += 1 + ssid_len;
|
||||
}
|
||||
|
||||
|
@ -197,8 +196,7 @@ dissect_ap_accept_sta(tvbuff_t * const tvb, packet_info * const pinfo, proto_tre
|
|||
* without printing it in the string... i suspect there is a better way of doing this
|
||||
*/
|
||||
proto_tree_add_string_format(tree, hf_cl3dcw_dcssid, tvb, offset, 1 + ssid_len,
|
||||
"", "Data Channel SSID: %.*s",
|
||||
(guint)ssid_len, ssidbuf);
|
||||
"", "Data Channel SSID: %s", ssidbuf);
|
||||
offset += 1 + ssid_len;
|
||||
}
|
||||
|
||||
|
|
|
@ -178,8 +178,8 @@ dissect_cups(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_
|
|||
return offset; /* separator/terminator not found */
|
||||
|
||||
proto_tree_add_string(cups_tree, hf_cups_uri, tvb, offset, len, str);
|
||||
col_add_fstr(pinfo->cinfo, COL_INFO, "%.*s (%s)",
|
||||
(guint16) len, str, val_to_str(state, cups_state_values, "0x%x"));
|
||||
col_add_fstr(pinfo->cinfo, COL_INFO, "%s (%s)",
|
||||
str, val_to_str(state, cups_state_values, "0x%x"));
|
||||
offset = next_offset;
|
||||
|
||||
if (!cups_tree)
|
||||
|
|
|
@ -99,7 +99,7 @@ dissect_text_interface_identifier_parameter(tvbuff_t *parameter_tvb, proto_tree
|
|||
|
||||
proto_tree_add_item(parameter_tree, hf_text_interface_id,
|
||||
parameter_tvb, TEXT_INTERFACE_ID_OFFSET, interface_id_length, ENC_ASCII);
|
||||
proto_item_append_text(parameter_item, " (%.*s)", interface_id_length,
|
||||
proto_item_append_text(parameter_item, " (%s)",
|
||||
tvb_format_text(wmem_packet_scope(), parameter_tvb, TEXT_INTERFACE_ID_OFFSET, interface_id_length));
|
||||
}
|
||||
|
||||
|
@ -113,7 +113,7 @@ dissect_info_string_parameter(tvbuff_t *parameter_tvb, proto_tree *parameter_tre
|
|||
info_string_length = tvb_get_ntohs(parameter_tvb, PARAMETER_LENGTH_OFFSET) - PARAMETER_HEADER_LENGTH;
|
||||
proto_tree_add_item(parameter_tree, hf_info_string,
|
||||
parameter_tvb, INFO_STRING_OFFSET, info_string_length, ENC_ASCII);
|
||||
proto_item_append_text(parameter_item, " (%.*s)", info_string_length,
|
||||
proto_item_append_text(parameter_item, " (%s)",
|
||||
tvb_format_text(wmem_packet_scope(), parameter_tvb, INFO_STRING_OFFSET, info_string_length));
|
||||
}
|
||||
|
||||
|
|
|
@ -663,8 +663,8 @@ icqv5_decode_msgType(proto_tree *tree, tvbuff_t *tvb, int offset, int size,
|
|||
}
|
||||
contact = tvb_get_string_enc(wmem_packet_scope(), tvb, sep_offset_prev + 1, sz_local, ENC_ASCII);
|
||||
proto_tree_add_string_format(subtree, hf_icq_msg_contact, tvb, offset, sz_local + svsz,
|
||||
contact, "%.*s: %.*s", svsz - 1,
|
||||
tvb_get_string_enc(wmem_packet_scope(), tvb, offset, svsz, ENC_ASCII), sz_local - 1,
|
||||
contact, "%s: %s",
|
||||
tvb_get_string_enc(wmem_packet_scope(), tvb, offset, svsz, ENC_ASCII),
|
||||
contact);
|
||||
n_local += 2;
|
||||
}
|
||||
|
|
|
@ -126,7 +126,7 @@ dissect_text_interface_identifier_parameter(tvbuff_t *parameter_tvb, proto_tree
|
|||
interface_id_length = tvb_get_ntohs(parameter_tvb, PARAMETER_LENGTH_OFFSET) - PARAMETER_HEADER_LENGTH;
|
||||
|
||||
proto_tree_add_item(parameter_tree, hf_text_interface_id, parameter_tvb, TEXT_INTERFACE_ID_OFFSET, interface_id_length, ENC_ASCII);
|
||||
proto_item_append_text(parameter_item, " (%.*s)", interface_id_length,
|
||||
proto_item_append_text(parameter_item, " (%s)",
|
||||
tvb_format_text(wmem_packet_scope(), parameter_tvb, TEXT_INTERFACE_ID_OFFSET, interface_id_length));
|
||||
}
|
||||
|
||||
|
@ -139,7 +139,7 @@ dissect_info_string_parameter(tvbuff_t *parameter_tvb, proto_tree *parameter_tre
|
|||
|
||||
info_string_length = tvb_get_ntohs(parameter_tvb, PARAMETER_LENGTH_OFFSET) - PARAMETER_HEADER_LENGTH;
|
||||
proto_tree_add_item(parameter_tree, hf_info_string, parameter_tvb, INFO_STRING_OFFSET, info_string_length, ENC_ASCII);
|
||||
proto_item_append_text(parameter_item, " (%.*s)", info_string_length,
|
||||
proto_item_append_text(parameter_item, " (%s)",
|
||||
tvb_format_text(wmem_packet_scope(), parameter_tvb, INFO_STRING_OFFSET, info_string_length));
|
||||
}
|
||||
|
||||
|
|
|
@ -324,7 +324,7 @@ dissect_m2tp_info_parameter(tvbuff_t *parameter_tvb, proto_tree *parameter_tree,
|
|||
length = tvb_get_ntohs(parameter_tvb, PARAMETER_LENGTH_OFFSET);
|
||||
info_string_length = length - PARAMETER_HEADER_LENGTH;
|
||||
proto_tree_add_item_ret_string(parameter_tree, hf_m2tp_info_string, parameter_tvb, INFO_STRING_OFFSET, info_string_length, ENC_ASCII, wmem_packet_scope(), &info_string);
|
||||
proto_item_set_text(parameter_item, "Info String (%.*s)", info_string_length, info_string);
|
||||
proto_item_set_text(parameter_item, "Info String (%s)", info_string);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -275,7 +275,7 @@ dissect_interface_identifier_text_parameter(tvbuff_t *parameter_tvb, proto_tree
|
|||
interface_id_length = tvb_get_ntohs(parameter_tvb, PARAMETER_LENGTH_OFFSET) - PARAMETER_HEADER_LENGTH;
|
||||
|
||||
proto_tree_add_item(parameter_tree, hf_interface_id_text, parameter_tvb, TEXT_INTERFACE_ID_OFFSET, interface_id_length, ENC_ASCII);
|
||||
proto_item_append_text(parameter_item, " (%.*s)", interface_id_length,
|
||||
proto_item_append_text(parameter_item, " (%s)",
|
||||
tvb_format_text(wmem_packet_scope(), parameter_tvb, TEXT_INTERFACE_ID_OFFSET, interface_id_length));
|
||||
}
|
||||
|
||||
|
@ -288,7 +288,7 @@ dissect_info_string_parameter(tvbuff_t *parameter_tvb, proto_tree *parameter_tre
|
|||
|
||||
info_string_length = tvb_get_ntohs(parameter_tvb, PARAMETER_LENGTH_OFFSET) - PARAMETER_HEADER_LENGTH;
|
||||
proto_tree_add_item(parameter_tree, hf_info_string, parameter_tvb, INFO_STRING_OFFSET, info_string_length, ENC_ASCII);
|
||||
proto_item_append_text(parameter_item, " (%.*s)", info_string_length,
|
||||
proto_item_append_text(parameter_item, " (%s)",
|
||||
tvb_format_text(wmem_packet_scope(), parameter_tvb, INFO_STRING_OFFSET, info_string_length));
|
||||
}
|
||||
|
||||
|
|
|
@ -399,7 +399,7 @@ dissect_info_string_parameter(tvbuff_t *parameter_tvb, proto_tree *parameter_tre
|
|||
|
||||
info_string_length = tvb_get_ntohs(parameter_tvb, PARAMETER_LENGTH_OFFSET) - PARAMETER_HEADER_LENGTH;
|
||||
proto_tree_add_item(parameter_tree, hf_info_string, parameter_tvb, INFO_STRING_OFFSET, info_string_length, ENC_ASCII);
|
||||
proto_item_append_text(parameter_item, " (%.*s)", info_string_length,
|
||||
proto_item_append_text(parameter_item, " (%s)",
|
||||
tvb_format_text(wmem_packet_scope(), parameter_tvb, INFO_STRING_OFFSET, info_string_length));
|
||||
}
|
||||
|
||||
|
|
|
@ -561,7 +561,7 @@ static void dissect_request_resolve(tvbuff_t *tvb, int offset,
|
|||
|
||||
if ( tree){
|
||||
name_tree = proto_tree_add_subtree_format(tree, tvb, offset, length + 1,
|
||||
ett_msproxy_name, NULL, "Host Name: %.*s", length,
|
||||
ett_msproxy_name, NULL, "Host Name: %s",
|
||||
tvb_get_string_enc( pinfo->pool, tvb, offset + 18, length, ENC_ASCII));
|
||||
|
||||
proto_tree_add_item(name_tree, hf_msproxy_req_resolve_length, tvb, offset, 1, ENC_NA);
|
||||
|
|
|
@ -6063,8 +6063,7 @@ static void parse_SUBNADMN(proto_tree *parentTree, packet_info *pinfo, tvbuff_t
|
|||
old_offset = *offset;
|
||||
label = val_to_str_const(MAD.AttributeID, SUBA_Attributes, "Attribute (Unknown SA Attribute!)");
|
||||
SA_record_tree = proto_tree_add_subtree_format(parentTree, tvb, old_offset,
|
||||
(SA_HEADER.AttributeOffset * 8), ett_rmpp_sa_record, NULL, "%.*s Record %u: ",
|
||||
(gint)strlen(&label[11]) - 1, &label[11], r);
|
||||
(SA_HEADER.AttributeOffset * 8), ett_rmpp_sa_record, NULL, "%s Record %u: ", label, r);
|
||||
|
||||
if (!parse_SUBA_Attribute(SA_record_tree, tvb, offset, &MAD, &RMPP, &SA_HEADER)) {
|
||||
expert_add_info_format(pinfo, NULL, &ei_opa_mad_no_attribute_dissector,
|
||||
|
|
|
@ -253,7 +253,7 @@ dissect_sap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
|
|||
|
||||
pt_str = tvb_get_string_enc(pinfo->pool, tvb, offset, pt_string_len, ENC_ASCII);
|
||||
proto_tree_add_string_format_value(sap_tree, hf_sap_payload_type, tvb, offset, pt_len,
|
||||
pt_str, "%.*s", pt_string_len, pt_str);
|
||||
pt_str, "%s", pt_str);
|
||||
offset += pt_len;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -591,7 +591,7 @@ dissect_info_string_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto
|
|||
}
|
||||
|
||||
proto_tree_add_item(parameter_tree, hf_sua_info_string, parameter_tvb, INFO_STRING_OFFSET, info_string_length, ENC_UTF_8);
|
||||
proto_item_append_text(parameter_item, " (%.*s)", info_string_length,
|
||||
proto_item_append_text(parameter_item, " (%s)",
|
||||
tvb_format_text(pinfo->pool, parameter_tvb, INFO_STRING_OFFSET, info_string_length));
|
||||
}
|
||||
|
||||
|
@ -1494,8 +1494,8 @@ dissect_hostname_parameter(tvbuff_t *parameter_tvb, proto_tree *parameter_tree,
|
|||
guint16 hostname_length;
|
||||
|
||||
hostname_length = tvb_get_ntohs(parameter_tvb, PARAMETER_LENGTH_OFFSET) - PARAMETER_HEADER_LENGTH;
|
||||
proto_tree_add_item(parameter_tree, source ? hf_sua_source_hostname : hf_sua_dest_hostname, parameter_tvb, HOSTNAME_OFFSET, hostname_length, ENC_ASCII|ENC_NA);
|
||||
proto_item_append_text(parameter_item, " (%.*s)", hostname_length,
|
||||
proto_tree_add_item(parameter_tree, source ? hf_sua_source_hostname : hf_sua_dest_hostname, parameter_tvb, HOSTNAME_OFFSET, hostname_length, ENC_ASCII);
|
||||
proto_item_append_text(parameter_item, " (%s)",
|
||||
tvb_format_text(wmem_packet_scope(), parameter_tvb, HOSTNAME_OFFSET, hostname_length));
|
||||
}
|
||||
|
||||
|
|
|
@ -51,10 +51,10 @@ static int dissect_tsdns(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, vo
|
|||
|
||||
if (request) {
|
||||
col_set_str(pinfo->cinfo, COL_INFO, "Request");
|
||||
col_append_fstr(pinfo->cinfo, COL_INFO, " %.*s", pLen - 5, tvb_get_string_enc(pinfo->pool, tvb, 0, pLen - 5, ENC_ASCII|ENC_NA));
|
||||
col_append_fstr(pinfo->cinfo, COL_INFO, " %s", tvb_get_string_enc(pinfo->pool, tvb, 0, pLen - 5, ENC_ASCII));
|
||||
} else {
|
||||
col_set_str(pinfo->cinfo, COL_INFO, "Response");
|
||||
col_append_fstr(pinfo->cinfo, COL_INFO, " %.*s", pLen, tvb_get_string_enc(pinfo->pool, tvb, 0, pLen, ENC_ASCII|ENC_NA));
|
||||
col_append_fstr(pinfo->cinfo, COL_INFO, " %s", tvb_get_string_enc(pinfo->pool, tvb, 0, pLen, ENC_ASCII));
|
||||
}
|
||||
|
||||
proto_tree *tsdns_tree;
|
||||
|
|
|
@ -180,8 +180,8 @@ dissect_text_interface_identifier_parameter(packet_info *pinfo, tvbuff_t *parame
|
|||
|
||||
if_id_length = tvb_get_ntohs(parameter_tvb, TEXT_IF_ID_LENGTH_OFFSET) - TEXT_IF_ID_HEADER_LENGTH;
|
||||
|
||||
proto_tree_add_item_ret_string(parameter_tree, hf_text_if_id, parameter_tvb, TEXT_IF_ID_VALUE_OFFSET, if_id_length, ENC_ASCII|ENC_NA, pinfo->pool, &str);
|
||||
proto_item_append_text(parameter_item, " (0x%.*s)", if_id_length, str);
|
||||
proto_tree_add_item_ret_string(parameter_tree, hf_text_if_id, parameter_tvb, TEXT_IF_ID_VALUE_OFFSET, if_id_length, ENC_ASCII, pinfo->pool, &str);
|
||||
proto_item_append_text(parameter_item, " (0x%s)", str);
|
||||
}
|
||||
/*----------------------Text Interface Identifier (RFC)------------------------*/
|
||||
|
||||
|
@ -457,8 +457,8 @@ dissect_asp_msg_parameter(packet_info *pinfo, tvbuff_t *parameter_tvb, proto_tre
|
|||
const guint8* str;
|
||||
guint16 adaptation_layer_id_length = tvb_get_ntohs(parameter_tvb, PARAMETER_LENGTH_OFFSET);
|
||||
|
||||
proto_tree_add_item_ret_string(parameter_tree, hf_adaptation_layer_id, parameter_tvb, PARAMETER_VALUE_OFFSET, adaptation_layer_id_length, ENC_ASCII|ENC_NA, pinfo->pool, &str);
|
||||
proto_item_append_text(parameter_item, " (%.*s)", adaptation_layer_id_length, str);
|
||||
proto_tree_add_item_ret_string(parameter_tree, hf_adaptation_layer_id, parameter_tvb, PARAMETER_VALUE_OFFSET, adaptation_layer_id_length, ENC_ASCII, pinfo->pool, &str);
|
||||
proto_item_append_text(parameter_item, " (%s)", str);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -466,8 +466,8 @@ dissect_scn_protocol_id_parameter(packet_info *pinfo, tvbuff_t *parameter_tvb, p
|
|||
{
|
||||
const guint8* str;
|
||||
guint16 id_length = tvb_get_ntohs(parameter_tvb, PARAMETER_LENGTH_OFFSET);
|
||||
proto_tree_add_item_ret_string(parameter_tree, hf_scn_protocol_id, parameter_tvb, PARAMETER_VALUE_OFFSET, id_length, ENC_ASCII|ENC_NA, pinfo->pool, &str);
|
||||
proto_item_append_text(parameter_item, " (%.*s)", id_length, str);
|
||||
proto_tree_add_item_ret_string(parameter_tree, hf_scn_protocol_id, parameter_tvb, PARAMETER_VALUE_OFFSET, id_length, ENC_ASCII, pinfo->pool, &str);
|
||||
proto_item_append_text(parameter_item, " (%s)", str);
|
||||
}
|
||||
|
||||
/*----------------------ASP (Draft)--------------------------------------------*/
|
||||
|
@ -758,8 +758,8 @@ dissect_info_string_parameter(packet_info *pinfo, tvbuff_t *parameter_tvb, proto
|
|||
if(iua_version == DRAFT) info_string_length += 4;
|
||||
if(info_string_length > 4){
|
||||
info_string_length -= PARAMETER_HEADER_LENGTH;
|
||||
proto_tree_add_item_ret_string(parameter_tree, hf_info_string, parameter_tvb, INFO_STRING_OFFSET, info_string_length, ENC_ASCII|ENC_NA, pinfo->pool, &str);
|
||||
proto_item_append_text(parameter_item, " (%.*s)", info_string_length, str);
|
||||
proto_tree_add_item_ret_string(parameter_tree, hf_info_string, parameter_tvb, INFO_STRING_OFFSET, info_string_length, ENC_ASCII, pinfo->pool, &str);
|
||||
proto_item_append_text(parameter_item, " (%s)", str);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue