aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2021-05-20 12:58:06 +0200
committerWireshark GitLab Utility <gerald+gitlab-utility@wireshark.org>2021-05-20 12:21:06 +0000
commit31ca47eafcce356841a6bfc99c918013f4695f01 (patch)
tree69b7f44c3e664b6d904ef7d28695c3995a625c16
parentf54221b5796d021c544577d4f9d828ede25999d0 (diff)
Use ENC_APN_STR in one more place.
-rw-r--r--epan/dissectors/packet-nas_5gs.c14
-rw-r--r--epan/tvbuff.c10
2 files changed, 7 insertions, 17 deletions
diff --git a/epan/dissectors/packet-nas_5gs.c b/epan/dissectors/packet-nas_5gs.c
index 149d0692f5..1ee1ae4e0a 100644
--- a/epan/dissectors/packet-nas_5gs.c
+++ b/epan/dissectors/packet-nas_5gs.c
@@ -5123,25 +5123,13 @@ de_nas_5gs_cmn_dnn(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
{
guint32 curr_offset;
- guint curr_len;
- guint8 *str;
proto_item *pi;
curr_offset = offset;
/* A DNN value field contains an APN as defined in 3GPP TS 23.003 */
- str = tvb_get_string_enc(wmem_packet_scope(), tvb, offset, len, ENC_ASCII | ENC_NA);
+ pi = proto_tree_add_item(tree, hf_nas_5gs_cmn_dnn, tvb, curr_offset, len, ENC_APN_STR | ENC_NA);
- curr_len = 0;
- while (curr_len < len)
- {
- guint step = str[curr_len];
- str[curr_len] = '.';
- curr_len += step + 1;
- }
-
- /* Highlight bytes including the first length byte */
- pi = proto_tree_add_string(tree, hf_nas_5gs_cmn_dnn, tvb, curr_offset, len, str + 1);
if (len > 100) {
expert_add_info(pinfo, pi, &ei_nas_5gs_dnn_too_long);
}
diff --git a/epan/tvbuff.c b/epan/tvbuff.c
index 0c26a2f9f0..545ce3e972 100644
--- a/epan/tvbuff.c
+++ b/epan/tvbuff.c
@@ -1630,11 +1630,11 @@ validate_single_byte_ascii_encoding(const guint encoding)
case ENC_KEYPAD_ABC_TBCD:
case ENC_KEYPAD_BC_TBCD:
case ENC_ETSI_TS_102_221_ANNEX_A:
- case ENC_APN_STR:
- REPORT_DISSECTOR_BUG("Invalid string encoding type passed to tvb_get_string_XXX");
- break;
+ case ENC_APN_STR:
+ REPORT_DISSECTOR_BUG("Invalid string encoding type passed to tvb_get_string_XXX");
+ break;
default:
- break;
+ break;
}
/* make sure something valid was set */
if (enc == 0)
@@ -3107,6 +3107,8 @@ tvb_get_string_enc(wmem_allocator_t *scope, tvbuff_t *tvb, const gint offset,
name_len = name_len + strptr[tmp] + 1;
strptr[tmp] = '.';
}
+ } else {
+ strptr = (char*)"";
}
}
break;