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:
João Valverde 2022-10-26 10:53:26 +01:00
parent 40ec1adfb0
commit 0157d74c44
14 changed files with 31 additions and 34 deletions

View File

@ -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;
}

View File

@ -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)

View File

@ -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));
}

View File

@ -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;
}

View File

@ -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));
}

View File

@ -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);
}
}

View File

@ -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));
}

View File

@ -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));
}

View File

@ -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);

View File

@ -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,

View File

@ -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;
}
}

View File

@ -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));
}

View File

@ -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;

View File

@ -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);
}
}