From 7a4e9325718e13e5d977677032f211c93e91aba9 Mon Sep 17 00:00:00 2001 From: Michael Mann Date: Sat, 20 Oct 2018 17:46:34 -0400 Subject: Add tvb_ascii_isprint API This allows dissectors to check if a portion of the tvb is an ascii string while hiding the use of tvb_get_ptr. Change-Id: Iaec7559dcfdefb8a5ae23e099ced45e90e611f8f Reviewed-on: https://code.wireshark.org/review/30291 Petri-Dish: Anders Broman Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman --- epan/dissectors/asn1/dap/dap.cnf | 8 +- epan/dissectors/asn1/ldap/ldap.cnf | 9 +- epan/dissectors/asn1/ldap/packet-ldap-template.c | 21 +- epan/dissectors/asn1/s1ap/s1ap.cnf | 18 +- epan/dissectors/packet-dap.c | 8 +- epan/dissectors/packet-diameter_3gpp.c | 50 ++-- epan/dissectors/packet-erldp.c | 9 +- epan/dissectors/packet-imap.c | 12 +- epan/dissectors/packet-ldap.c | 97 +++---- epan/dissectors/packet-ositp.c | 22 +- epan/dissectors/packet-s1ap.c | 332 +++++++++++------------ epan/tvbuff.c | 11 + epan/tvbuff.h | 7 + 13 files changed, 258 insertions(+), 346 deletions(-) (limited to 'epan') diff --git a/epan/dissectors/asn1/dap/dap.cnf b/epan/dissectors/asn1/dap/dap.cnf index c20d57af02..d4e7a98e75 100644 --- a/epan/dissectors/asn1/dap/dap.cnf +++ b/epan/dissectors/asn1/dap/dap.cnf @@ -290,13 +290,9 @@ OPERATION.&ResultType %(DEFAULT_BODY)s if(out_tvb) { - len = tvb_reported_length(out_tvb); /* now see if we can add a string representation */ - for(i=0; icreated_item) { proto_item_append_text(actx->created_item," ("); diff --git a/epan/dissectors/asn1/ldap/ldap.cnf b/epan/dissectors/asn1/ldap/ldap.cnf index 624c311208..67a2d4a7ba 100644 --- a/epan/dissectors/asn1/ldap/ldap.cnf +++ b/epan/dissectors/asn1/ldap/ldap.cnf @@ -450,7 +450,6 @@ ldap_conv_info_t *ldap_info; tvbuff_t *next_tvb = NULL; gchar *string; - guint32 i, len; int old_offset = offset; gint *hf_id; @@ -470,13 +469,7 @@ ldap_conv_info_t *ldap_info; /* do the default thing */ %(DEFAULT_BODY)s - len = tvb_reported_length_remaining(next_tvb, 0); - - for(i = 0; i < len; i++) - if(!g_ascii_isprint(tvb_get_guint8(next_tvb, i))) - break; - - if(i == len) { + if(tvb_ascii_isprint(next_tvb, 0, tvb_reported_length(next_tvb))) { string = tvb_get_string_enc(wmem_packet_scope(), next_tvb, 0, tvb_reported_length_remaining(next_tvb, 0), ENC_ASCII|ENC_NA); proto_item_set_text(actx->created_item, "AttributeValue: %%s", string); } diff --git a/epan/dissectors/asn1/ldap/packet-ldap-template.c b/epan/dissectors/asn1/ldap/packet-ldap-template.c index 7bdcb2bd96..01132effdb 100644 --- a/epan/dissectors/asn1/ldap/packet-ldap-template.c +++ b/epan/dissectors/asn1/ldap/packet-ldap-template.c @@ -633,8 +633,7 @@ dissect_ldap_AssertionValue(gboolean implicit_tag, tvbuff_t *tvb, int offset, as gint8 ber_class; gboolean pc, ind, is_ascii; gint32 tag; - guint32 len, i; - const guchar *str; + guint32 len; if(!implicit_tag){ offset=get_ber_identifier(tvb, offset, &ber_class, &pc, &tag); @@ -711,25 +710,13 @@ dissect_ldap_AssertionValue(gboolean implicit_tag, tvbuff_t *tvb, int offset, as * -- I don't think there are full schemas available that describe the * interesting cases i.e. AD -- ronnie */ - str=tvb_get_ptr(tvb, offset, len); - is_ascii=TRUE; - for(i=0;icreated_item," (%%s)",tvb_format_text(parameter_tvb, 0, length)); #.FN_BODY MMEname VAL_PTR = parameter_tvb tvbuff_t *parameter_tvb=NULL; int length; - int p_offset; gboolean is_ascii; %(DEFAULT_BODY)s @@ -276,13 +268,7 @@ MAX_VAL = asn1_param_get_integer(%(ACTX)s,"upperBound") length = tvb_reported_length(parameter_tvb); - is_ascii = TRUE; - for (p_offset=0; p_offset < length; p_offset++){ - if(!g_ascii_isprint(tvb_get_guint8(parameter_tvb, p_offset ))){ - is_ascii = FALSE; - break; - } - } + is_ascii = tvb_ascii_isprint(parameter_tvb, 0, length); if (is_ascii) proto_item_append_text(actx->created_item," (%%s)",tvb_format_text(parameter_tvb, 0, length)); diff --git a/epan/dissectors/packet-dap.c b/epan/dissectors/packet-dap.c index 18b09b7a30..b46f34fd04 100644 --- a/epan/dissectors/packet-dap.c +++ b/epan/dissectors/packet-dap.c @@ -1556,13 +1556,9 @@ dissect_dap_T_pagedResultsQueryReference(gboolean implicit_tag _U_, tvbuff_t *tv if(out_tvb) { - len = tvb_reported_length(out_tvb); /* now see if we can add a string representation */ - for(i=0; icreated_item) { proto_item_append_text(actx->created_item," ("); diff --git a/epan/dissectors/packet-diameter_3gpp.c b/epan/dissectors/packet-diameter_3gpp.c index 94ff59e9fc..e620014aeb 100644 --- a/epan/dissectors/packet-diameter_3gpp.c +++ b/epan/dissectors/packet-diameter_3gpp.c @@ -551,14 +551,13 @@ static int dissect_diameter_3gpp_imeisv(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void *data) { proto_item *item; - int offset = 0, i; + int offset = 0; int length = tvb_reported_length(tvb); diam_sub_dis_t *diam_sub_dis = (diam_sub_dis_t*)data; if (tree){ - for (i = 0; i < length; i++) - if (!g_ascii_isprint(tvb_get_guint8(tvb, i))) - return length; + if (!tvb_ascii_isprint(tvb, 0, length)) + return length; item = proto_tree_add_item_ret_string(tree, hf_diameter_3gpp_imeisv, tvb, offset, length, ENC_UTF_8 | ENC_NA, wmem_packet_scope(), (const guint8**)&diam_sub_dis->avp_str); @@ -670,14 +669,13 @@ static int dissect_diameter_3gpp_af_application_identifier(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void *data) { proto_item *item; - int offset = 0, i; + int offset = 0; int length = tvb_reported_length(tvb); diam_sub_dis_t *diam_sub_dis = (diam_sub_dis_t*)data; if (tree){ - for (i = 0; i < length; i++) - if (!g_ascii_isprint(tvb_get_guint8(tvb, i))) - return length; + if (!tvb_ascii_isprint(tvb, 0, length)) + return length; item = proto_tree_add_item_ret_string(tree, hf_diameter_3gpp_af_application_identifier, tvb, offset, length, ENC_UTF_8 | ENC_NA, wmem_packet_scope(), (const guint8**)&diam_sub_dis->avp_str); @@ -695,14 +693,13 @@ static int dissect_diameter_3gpp_af_charging_identifier(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void *data) { proto_item *item; - int offset = 0, i; + int offset = 0; int length = tvb_reported_length(tvb); diam_sub_dis_t *diam_sub_dis = (diam_sub_dis_t*)data; if (tree){ - for (i = 0; i < length; i++) - if (!g_ascii_isprint(tvb_get_guint8(tvb, i))) - return length; + if (!tvb_ascii_isprint(tvb, 0, length)) + return length; item = proto_tree_add_item_ret_string(tree, hf_diameter_3gpp_af_charging_identifier, tvb, offset, length, ENC_UTF_8 | ENC_NA, wmem_packet_scope(), (const guint8**)&diam_sub_dis->avp_str); @@ -723,17 +720,15 @@ static int dissect_diameter_3gpp_visited_nw_id(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void *data _U_) { proto_item *item; - int offset = 0, i; + int offset = 0; int length = tvb_reported_length(tvb); - for(i = 0; i < length; i++) - if(!g_ascii_isprint(tvb_get_guint8(tvb, i))) - return length; + if (!tvb_ascii_isprint(tvb, 0, length)) + return length; item = proto_tree_add_item(tree, hf_diameter_3gpp_visited_nw_id, tvb, offset, length, ENC_ASCII|ENC_NA); PROTO_ITEM_SET_GENERATED(item); - return length; } @@ -1159,12 +1154,11 @@ static int dissect_diameter_3gpp_service_ind(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void *data _U_) { proto_item *item; - int offset = 0, i; + int offset = 0; int length = tvb_reported_length(tvb); - for(i = 0; i < length; i++) - if(!g_ascii_isprint(tvb_get_guint8(tvb, i))) - return length; + if (!tvb_ascii_isprint(tvb, 0, length)) + return length; item = proto_tree_add_item(tree, hf_diameter_3gpp_service_ind, tvb, offset, length, ENC_ASCII|ENC_NA); PROTO_ITEM_SET_GENERATED(item); @@ -1331,14 +1325,13 @@ static int dissect_diameter_3gpp_charging_rule_name(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void *data) { proto_item *item; - int offset = 0, i; + int offset = 0; int length = tvb_reported_length(tvb); diam_sub_dis_t *diam_sub_dis = (diam_sub_dis_t*)data; if (tree){ - for (i = 0; i < length; i++) - if (!g_ascii_isprint(tvb_get_guint8(tvb, i))) - return length; + if (!tvb_ascii_isprint(tvb, 0, length)) + return length; item = proto_tree_add_item_ret_string(tree, hf_diameter_3gpp_charging_rule_name, tvb, offset, length, ENC_UTF_8 | ENC_NA, wmem_packet_scope(), (const guint8**)&diam_sub_dis->avp_str); @@ -1355,14 +1348,13 @@ static int dissect_diameter_3gpp_monitoring_key(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void *data) { proto_item *item; - int offset = 0, i; + int offset = 0; int length = tvb_reported_length(tvb); diam_sub_dis_t *diam_sub_dis = (diam_sub_dis_t*)data; if (tree){ - for (i = 0; i < length; i++) - if (!g_ascii_isprint(tvb_get_guint8(tvb, i))) - return length; + if (!tvb_ascii_isprint(tvb, 0, length)) + return length; item = proto_tree_add_item_ret_string(tree, hf_diameter_3gpp_monitoring_key, tvb, offset, length, ENC_UTF_8 | ENC_NA, wmem_packet_scope(), (const guint8**)&diam_sub_dis->avp_str); diff --git a/epan/dissectors/packet-erldp.c b/epan/dissectors/packet-erldp.c index b83651638f..4375d6095f 100644 --- a/epan/dissectors/packet-erldp.c +++ b/epan/dissectors/packet-erldp.c @@ -394,7 +394,6 @@ static gboolean is_handshake(tvbuff_t *tvb, int offset) { static void dissect_erldp_handshake(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { gint offset = 0; guint8 tag; - gint i; gboolean is_challenge = FALSE; guint32 str_len; const guint8 *str; @@ -412,11 +411,9 @@ static void dissect_erldp_handshake(tvbuff_t *tvb, packet_info *pinfo, proto_tre proto_tree_add_item(tree, hf_erldp_flags, tvb, offset, 4, ENC_BIG_ENDIAN); offset += 4; if (tvb_bytes_exist(tvb, offset, 4)) { - for (i=0; i<4; i++) - if(!g_ascii_isprint(tvb_get_guint8(tvb, offset + i))) { - is_challenge = TRUE; - break; - } + if (!tvb_ascii_isprint(tvb, offset, 4)) { + is_challenge = TRUE; + } } if (is_challenge) { proto_tree_add_item(tree, hf_erldp_challenge, tvb, offset, 4, ENC_BIG_ENDIAN); diff --git a/epan/dissectors/packet-imap.c b/epan/dissectors/packet-imap.c index 1a161dd7d0..9d16e33602 100644 --- a/epan/dissectors/packet-imap.c +++ b/epan/dissectors/packet-imap.c @@ -56,19 +56,13 @@ typedef struct imap_state { static gboolean check_imap_heur(tvbuff_t *tvb) { - const gchar *s; - gint i; - if (!tvb_bytes_exist(tvb, 0, IMAP_HEUR_LEN)) { return TRUE; } - s = (const gchar *)tvb_get_ptr(tvb, 0, IMAP_HEUR_LEN); - for (i = 0; i < IMAP_HEUR_LEN; i++) { - if (!g_ascii_isprint(s[i])) { - return FALSE; - } - } + if (!tvb_ascii_isprint(tvb, 0, IMAP_HEUR_LEN)) + return FALSE; + return TRUE; } diff --git a/epan/dissectors/packet-ldap.c b/epan/dissectors/packet-ldap.c index 67f121f40f..6f9fa72d1a 100644 --- a/epan/dissectors/packet-ldap.c +++ b/epan/dissectors/packet-ldap.c @@ -847,8 +847,7 @@ dissect_ldap_AssertionValue(gboolean implicit_tag, tvbuff_t *tvb, int offset, as gint8 ber_class; gboolean pc, ind, is_ascii; gint32 tag; - guint32 len, i; - const guchar *str; + guint32 len; if(!implicit_tag){ offset=get_ber_identifier(tvb, offset, &ber_class, &pc, &tag); @@ -925,25 +924,13 @@ dissect_ldap_AssertionValue(gboolean implicit_tag, tvbuff_t *tvb, int offset, as * -- I don't think there are full schemas available that describe the * interesting cases i.e. AD -- ronnie */ - str=tvb_get_ptr(tvb, offset, len); - is_ascii=TRUE; - for(i=0;ipinfo); @@ -1425,7 +1412,7 @@ dissect_ldap_T_ntlmsspNegotiate(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in static int dissect_ldap_T_ntlmsspAuth(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 696 "./asn1/ldap/ldap.cnf" +#line 692 "./asn1/ldap/ldap.cnf" /* make sure the protocol op comes first */ ldap_do_protocolop(actx->pinfo); @@ -1456,7 +1443,7 @@ static const ber_choice_t AuthenticationChoice_choice[] = { static int dissect_ldap_AuthenticationChoice(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 486 "./asn1/ldap/ldap.cnf" +#line 482 "./asn1/ldap/ldap.cnf" gint branch = -1; gint auth = -1; const gchar *valstr; @@ -1589,7 +1576,7 @@ dissect_ldap_BindResponse_resultCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U static int dissect_ldap_T_bindResponse_matchedDN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 703 "./asn1/ldap/ldap.cnf" +#line 699 "./asn1/ldap/ldap.cnf" tvbuff_t *new_tvb=NULL; offset = dissect_ber_octet_string(FALSE, actx, tree, tvb, offset, hf_ldap_matchedDN, &new_tvb); @@ -1767,7 +1754,7 @@ dissect_ldap_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, static int dissect_ldap_UnbindRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 508 "./asn1/ldap/ldap.cnf" +#line 504 "./asn1/ldap/ldap.cnf" implicit_tag = TRUE; /* correct problem with asn2wrs */ @@ -1863,7 +1850,7 @@ static int dissect_ldap_T_and_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ldap_Filter(implicit_tag, tvb, offset, actx, tree, hf_index); -#line 554 "./asn1/ldap/ldap.cnf" +#line 550 "./asn1/ldap/ldap.cnf" if(and_filter_string){ and_filter_string=wmem_strdup_printf(wmem_packet_scope(), "(&%s%s)",and_filter_string,Filter_string); } else { @@ -1881,7 +1868,7 @@ static const ber_sequence_t T_and_set_of[1] = { static int dissect_ldap_T_and(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 561 "./asn1/ldap/ldap.cnf" +#line 557 "./asn1/ldap/ldap.cnf" proto_tree *tr=NULL; proto_item *it=NULL; const char *old_and_filter_string=and_filter_string; @@ -1912,7 +1899,7 @@ static int dissect_ldap_T_or_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ldap_Filter(implicit_tag, tvb, offset, actx, tree, hf_index); -#line 579 "./asn1/ldap/ldap.cnf" +#line 575 "./asn1/ldap/ldap.cnf" if(or_filter_string){ or_filter_string=wmem_strdup_printf(wmem_packet_scope(), "(|%s%s)",or_filter_string,Filter_string); } else { @@ -1931,7 +1918,7 @@ static const ber_sequence_t T_or_set_of[1] = { static int dissect_ldap_T_or(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 587 "./asn1/ldap/ldap.cnf" +#line 583 "./asn1/ldap/ldap.cnf" proto_tree *tr; proto_item *it; const char *old_or_filter_string=or_filter_string; @@ -1960,7 +1947,7 @@ static int dissect_ldap_T_not(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ldap_Filter(implicit_tag, tvb, offset, actx, tree, hf_index); -#line 606 "./asn1/ldap/ldap.cnf" +#line 602 "./asn1/ldap/ldap.cnf" Filter_string=wmem_strdup_printf(wmem_packet_scope(), "(!%s)",string_or_null(Filter_string)); @@ -1998,7 +1985,7 @@ static int dissect_ldap_T_equalityMatch(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ldap_AttributeValueAssertion(implicit_tag, tvb, offset, actx, tree, hf_index); -#line 531 "./asn1/ldap/ldap.cnf" +#line 527 "./asn1/ldap/ldap.cnf" Filter_string=wmem_strdup_printf(wmem_packet_scope(), "(%s=%s)", string_or_null(attributedesc_string), string_or_null(ldapvalue_string)); @@ -2029,7 +2016,7 @@ dissect_ldap_T_substringFilter_substrings_item(gboolean implicit_tag _U_, tvbuff T_substringFilter_substrings_item_choice, hf_index, ett_ldap_T_substringFilter_substrings_item, NULL); -#line 632 "./asn1/ldap/ldap.cnf" +#line 628 "./asn1/ldap/ldap.cnf" if (substring_item_final) { substring_value=wmem_strdup_printf(wmem_packet_scope(), "%s%s", (substring_value?substring_value:"*"), @@ -2069,7 +2056,7 @@ static const ber_sequence_t SubstringFilter_sequence[] = { static int dissect_ldap_SubstringFilter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 646 "./asn1/ldap/ldap.cnf" +#line 642 "./asn1/ldap/ldap.cnf" proto_tree *tr; proto_item *it; const char *old_substring_value=substring_value; @@ -2103,7 +2090,7 @@ static int dissect_ldap_T_greaterOrEqual(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ldap_AttributeValueAssertion(implicit_tag, tvb, offset, actx, tree, hf_index); -#line 537 "./asn1/ldap/ldap.cnf" +#line 533 "./asn1/ldap/ldap.cnf" Filter_string=wmem_strdup_printf(wmem_packet_scope(), "(%s>=%s)", string_or_null(attributedesc_string), string_or_null(ldapvalue_string)); @@ -2119,7 +2106,7 @@ static int dissect_ldap_T_lessOrEqual(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ldap_AttributeValueAssertion(implicit_tag, tvb, offset, actx, tree, hf_index); -#line 543 "./asn1/ldap/ldap.cnf" +#line 539 "./asn1/ldap/ldap.cnf" Filter_string=wmem_strdup_printf(wmem_packet_scope(), "(%s<=%s)", string_or_null(attributedesc_string), string_or_null(ldapvalue_string)); @@ -2135,7 +2122,7 @@ static int dissect_ldap_T_present(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ldap_AttributeDescription(implicit_tag, tvb, offset, actx, tree, hf_index); -#line 603 "./asn1/ldap/ldap.cnf" +#line 599 "./asn1/ldap/ldap.cnf" Filter_string=wmem_strdup_printf(wmem_packet_scope(), "(%s=*)",string_or_null(Filter_string)); @@ -2148,7 +2135,7 @@ static int dissect_ldap_T_approxMatch(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ldap_AttributeValueAssertion(implicit_tag, tvb, offset, actx, tree, hf_index); -#line 549 "./asn1/ldap/ldap.cnf" +#line 545 "./asn1/ldap/ldap.cnf" Filter_string=wmem_strdup_printf(wmem_packet_scope(), "(%s~=%s)", string_or_null(attributedesc_string), string_or_null(ldapvalue_string)); @@ -2170,7 +2157,7 @@ dissect_ldap_MatchingRuleId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of static int dissect_ldap_T_dnAttributes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 609 "./asn1/ldap/ldap.cnf" +#line 605 "./asn1/ldap/ldap.cnf" gboolean val; offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, &val); @@ -2205,7 +2192,7 @@ dissect_ldap_MatchingRuleAssertion(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, static int dissect_ldap_T_extensibleMatch(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 618 "./asn1/ldap/ldap.cnf" +#line 614 "./asn1/ldap/ldap.cnf" attr_type=NULL; matching_rule_string=NULL; ldapvalue_string=NULL; @@ -2214,7 +2201,7 @@ dissect_ldap_T_extensibleMatch(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset = dissect_ldap_MatchingRuleAssertion(implicit_tag, tvb, offset, actx, tree, hf_index); -#line 624 "./asn1/ldap/ldap.cnf" +#line 620 "./asn1/ldap/ldap.cnf" Filter_string=wmem_strdup_printf(wmem_packet_scope(), "(%s:%s%s%s=%s)", (attr_type?attr_type:""), (matching_rule_dnattr?"dn:":""), @@ -2257,7 +2244,7 @@ static const ber_choice_t Filter_choice[] = { static int dissect_ldap_Filter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 667 "./asn1/ldap/ldap.cnf" +#line 663 "./asn1/ldap/ldap.cnf" proto_tree *tr; proto_item *it; attributedesc_string=NULL; @@ -2291,7 +2278,7 @@ dissect_ldap_Filter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_ static int dissect_ldap_T_filter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 520 "./asn1/ldap/ldap.cnf" +#line 516 "./asn1/ldap/ldap.cnf" Filter_string=NULL; Filter_elements = 0; Filter_length = 0; @@ -2299,7 +2286,7 @@ dissect_ldap_T_filter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _ offset = dissect_ldap_Filter(implicit_tag, tvb, offset, actx, tree, hf_index); -#line 525 "./asn1/ldap/ldap.cnf" +#line 521 "./asn1/ldap/ldap.cnf" Filter_string=NULL; and_filter_string=NULL; Filter_elements = 0; @@ -2361,7 +2348,7 @@ dissect_ldap_AttributeValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of tvbuff_t *next_tvb = NULL; gchar *string; - guint32 i, len; + guint32 len; int old_offset = offset; gint *hf_id; @@ -2385,11 +2372,7 @@ dissect_ldap_AttributeValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of len = tvb_reported_length_remaining(next_tvb, 0); - for(i = 0; i < len; i++) - if(!g_ascii_isprint(tvb_get_guint8(next_tvb, i))) - break; - - if(i == len) { + if(tvb_ascii_isprint(next_tvb, 0, tvb_reported_length(next_tvb))) { string = tvb_get_string_enc(wmem_packet_scope(), next_tvb, 0, tvb_reported_length_remaining(next_tvb, 0), ENC_ASCII|ENC_NA); proto_item_set_text(actx->created_item, "AttributeValue: %s", string); } @@ -2584,7 +2567,7 @@ dissect_ldap_SEQUENCE_OF_LDAPURL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, i static int dissect_ldap_SearchResultReference(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 795 "./asn1/ldap/ldap.cnf" +#line 791 "./asn1/ldap/ldap.cnf" offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset, hf_index, BER_CLASS_APP, 19, TRUE, dissect_ldap_SEQUENCE_OF_LDAPURL); @@ -2862,7 +2845,7 @@ dissect_ldap_CompareResponse(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o static int dissect_ldap_AbandonRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 802 "./asn1/ldap/ldap.cnf" +#line 798 "./asn1/ldap/ldap.cnf" offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset, hf_index, BER_CLASS_APP, 16, TRUE, dissect_ldap_MessageID); @@ -2923,7 +2906,7 @@ dissect_ldap_LDAPOID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U static int dissect_ldap_T_requestValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 737 "./asn1/ldap/ldap.cnf" +#line 733 "./asn1/ldap/ldap.cnf" if((object_identifier_id != NULL) && oid_has_dissector(object_identifier_id)) { offset = call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, NULL); @@ -3086,12 +3069,12 @@ dissect_ldap_ExtendedResponse(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int static int dissect_ldap_T_intermediateResponse_responseValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 745 "./asn1/ldap/ldap.cnf" +#line 741 "./asn1/ldap/ldap.cnf" const gchar *name; -#line 749 "./asn1/ldap/ldap.cnf" +#line 745 "./asn1/ldap/ldap.cnf" if(ldm_tree && object_identifier_id) { proto_item_set_text(ldm_tree, "%s %s", "IntermediateResponse", object_identifier_id); name = oid_resolved_from_string(wmem_packet_scope(), object_identifier_id); @@ -3260,7 +3243,7 @@ dissect_ldap_ControlType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offse static int dissect_ldap_T_controlValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 718 "./asn1/ldap/ldap.cnf" +#line 714 "./asn1/ldap/ldap.cnf" gint8 ber_class; gboolean pc, ind; gint32 tag; @@ -3431,7 +3414,7 @@ dissect_ldap_SortResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset static int dissect_ldap_DirSyncFlags(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 762 "./asn1/ldap/ldap.cnf" +#line 758 "./asn1/ldap/ldap.cnf" gint8 ber_class; gboolean pc; gint32 tag; @@ -3833,7 +3816,7 @@ static int dissect_PasswordPolicyResponseValue_PDU(tvbuff_t *tvb _U_, packet_inf /*--- End of included file: packet-ldap-fn.c ---*/ -#line 919 "./asn1/ldap/packet-ldap-template.c" +#line 906 "./asn1/ldap/packet-ldap-template.c" static int dissect_LDAPMessage_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, ldap_conv_info_t *ldap_info) { int offset = 0; @@ -5643,7 +5626,7 @@ void proto_register_ldap(void) { NULL, HFILL }}, /*--- End of included file: packet-ldap-hfarr.c ---*/ -#line 2160 "./asn1/ldap/packet-ldap-template.c" +#line 2147 "./asn1/ldap/packet-ldap-template.c" }; /* List of subtrees */ @@ -5717,7 +5700,7 @@ void proto_register_ldap(void) { &ett_ldap_T_warning, /*--- End of included file: packet-ldap-ettarr.c ---*/ -#line 2174 "./asn1/ldap/packet-ldap-template.c" +#line 2161 "./asn1/ldap/packet-ldap-template.c" }; /* UAT for header fields */ static uat_field_t custom_attribute_types_uat_fields[] = { @@ -5906,7 +5889,7 @@ proto_reg_handoff_ldap(void) /*--- End of included file: packet-ldap-dis-tab.c ---*/ -#line 2346 "./asn1/ldap/packet-ldap-template.c" +#line 2333 "./asn1/ldap/packet-ldap-template.c" dissector_add_uint_range_with_preference("tcp.port", TCP_PORT_RANGE_LDAP, ldap_handle); } diff --git a/epan/dissectors/packet-ositp.c b/epan/dissectors/packet-ositp.c index 1c3c7381e0..05a50afb81 100644 --- a/epan/dissectors/packet-ositp.c +++ b/epan/dissectors/packet-ositp.c @@ -373,22 +373,6 @@ static void cotp_frame_end(void) cotp_frame_reset = TRUE; } -static gboolean is_all_printable(const guchar *stringtocheck, int length) -{ - gboolean allprintable; - int i; - - allprintable=TRUE; - for (i=0;i MAX_TSAP_LEN) g_snprintf(cur, MAX_TSAP_LEN * 2 + 3, ""); else { - allprintable = is_all_printable(tsap,length); + allprintable = tvb_ascii_isprint(tvb, offset, length); if (!allprintable) { returned_length = g_snprintf(cur, MAX_TSAP_LEN * 2 + 3, "0x"); idx += MIN(returned_length, MAX_TSAP_LEN * 2 + 3 - 1); @@ -642,7 +626,7 @@ static gboolean ositp_decode_var_part(tvbuff_t *tvb, int offset, int vp_length, * add as bytes and hidden as string; otherwise vice-versa */ if (tsap_display==TSAP_DISPLAY_STRING || (tsap_display==TSAP_DISPLAY_AUTO && - is_all_printable(tvb_get_ptr(tvb, offset,length),length))) { + tvb_ascii_isprint(tvb, offset, length))) { proto_tree_add_string(tree, hf_cotp_vp_src_tsap, tvb, offset, length, print_tsap(tvb, offset, length)); hidden_item = proto_tree_add_item(tree, hf_cotp_vp_src_tsap_bytes, tvb, @@ -665,7 +649,7 @@ static gboolean ositp_decode_var_part(tvbuff_t *tvb, int offset, int vp_length, * add as bytes and hidden as string; otherwise vice-versa */ if (tsap_display==TSAP_DISPLAY_STRING || (tsap_display==TSAP_DISPLAY_AUTO && - is_all_printable(tvb_get_ptr(tvb,offset,length),length))) { + tvb_ascii_isprint(tvb, offset, length))) { proto_tree_add_string(tree, hf_cotp_vp_dst_tsap, tvb, offset, length, print_tsap(tvb, offset, length)); hidden_item = proto_tree_add_item(tree, hf_cotp_vp_dst_tsap_bytes, tvb, diff --git a/epan/dissectors/packet-s1ap.c b/epan/dissectors/packet-s1ap.c index 8b49fa591b..aa9f3c4fa5 100644 --- a/epan/dissectors/packet-s1ap.c +++ b/epan/dissectors/packet-s1ap.c @@ -2629,7 +2629,7 @@ dissect_s1ap_PLMNidentity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U static int dissect_s1ap_MME_Group_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 813 "./asn1/s1ap/s1ap.cnf" +#line 799 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, -1, 2, 2, FALSE, ¶meter_tvb); @@ -2647,7 +2647,7 @@ dissect_s1ap_MME_Group_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U static int dissect_s1ap_MME_Code(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 804 "./asn1/s1ap/s1ap.cnf" +#line 790 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, -1, 1, 1, FALSE, ¶meter_tvb); @@ -2682,7 +2682,7 @@ dissect_s1ap_GUMMEI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pro static int dissect_s1ap_M_TMSI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1105 "./asn1/s1ap/s1ap.cnf" +#line 1091 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, -1, 4, 4, FALSE, ¶meter_tvb); @@ -2732,7 +2732,7 @@ dissect_s1ap_AerialUEsubscriptionInformation(tvbuff_t *tvb _U_, int offset _U_, static int dissect_s1ap_CellIdentity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2221 "./asn1/s1ap/s1ap.cnf" +#line 2207 "./asn1/s1ap/s1ap.cnf" tvbuff_t *cell_id_tvb = NULL; offset = dissect_per_bit_string(tvb, offset, actx, tree, -1, 28, 28, FALSE, &cell_id_tvb, NULL); @@ -2795,7 +2795,7 @@ dissect_s1ap_CellBasedMDT(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U static int dissect_s1ap_TAC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1063 "./asn1/s1ap/s1ap.cnf" +#line 1049 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); offset = dissect_per_octet_string(tvb, offset, actx, tree, -1, @@ -2863,7 +2863,7 @@ static const per_sequence_t TAI_sequence[] = { static int dissect_s1ap_TAI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1171 "./asn1/s1ap/s1ap.cnf" +#line 1157 "./asn1/s1ap/s1ap.cnf" struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); s1ap_data->tai = wmem_new0(wmem_packet_scope(), struct s1ap_tai); @@ -3163,7 +3163,7 @@ dissect_s1ap_AllocationAndRetentionPriority(tvbuff_t *tvb _U_, int offset _U_, a static int dissect_s1ap_CELevel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 700 "./asn1/s1ap/s1ap.cnf" +#line 686 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; proto_tree *subtree; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, @@ -3464,7 +3464,7 @@ dissect_s1ap_BluetoothMeasConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t * static int dissect_s1ap_BluetoothName(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1201 "./asn1/s1ap/s1ap.cnf" +#line 1187 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, -1, 1, 248, FALSE, ¶meter_tvb); @@ -3950,7 +3950,7 @@ static value_string_ext s1ap_CauseRadioNetwork_vals_ext = VALUE_STRING_EXT_INIT( static int dissect_s1ap_CauseRadioNetwork(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2192 "./asn1/s1ap/s1ap.cnf" +#line 2178 "./asn1/s1ap/s1ap.cnf" guint32 value; offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, 36, &value, TRUE, 4, NULL); @@ -3972,7 +3972,7 @@ const value_string s1ap_CauseTransport_vals[] = { static int dissect_s1ap_CauseTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2197 "./asn1/s1ap/s1ap.cnf" +#line 2183 "./asn1/s1ap/s1ap.cnf" guint32 value; offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, 2, &value, TRUE, 0, NULL); @@ -3997,7 +3997,7 @@ const value_string s1ap_CauseNas_vals[] = { static int dissect_s1ap_CauseNas(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2202 "./asn1/s1ap/s1ap.cnf" +#line 2188 "./asn1/s1ap/s1ap.cnf" guint32 value; offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, 4, &value, TRUE, 1, NULL); @@ -4024,7 +4024,7 @@ const value_string s1ap_CauseProtocol_vals[] = { static int dissect_s1ap_CauseProtocol(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2207 "./asn1/s1ap/s1ap.cnf" +#line 2193 "./asn1/s1ap/s1ap.cnf" guint32 value; offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, 7, &value, TRUE, 0, NULL); @@ -4050,7 +4050,7 @@ const value_string s1ap_CauseMisc_vals[] = { static int dissect_s1ap_CauseMisc(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2212 "./asn1/s1ap/s1ap.cnf" +#line 2198 "./asn1/s1ap/s1ap.cnf" guint32 value; offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, 6, &value, TRUE, 0, NULL); @@ -4124,7 +4124,7 @@ dissect_s1ap_CE_mode_B_SupportIndicator(tvbuff_t *tvb _U_, int offset _U_, asn1_ static int dissect_s1ap_Cdma2000PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 640 "./asn1/s1ap/s1ap.cnf" +#line 626 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; proto_tree *subtree; @@ -4166,7 +4166,7 @@ dissect_s1ap_Cdma2000RATType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx static int dissect_s1ap_Cdma2000SectorID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 655 "./asn1/s1ap/s1ap.cnf" +#line 641 "./asn1/s1ap/s1ap.cnf" /* 9.2.1.25 * This IE is set to CDMA2000 Reference Cell ID * corresponding to the HRPD/1xRTT sector under @@ -4316,7 +4316,7 @@ dissect_s1ap_CellType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, p static int dissect_s1ap_LAC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1078 "./asn1/s1ap/s1ap.cnf" +#line 1064 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, -1, 2, 2, FALSE, ¶meter_tvb); @@ -4344,7 +4344,7 @@ dissect_s1ap_CI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_t static int dissect_s1ap_RAC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1087 "./asn1/s1ap/s1ap.cnf" +#line 1073 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, -1, 1, 1, FALSE, ¶meter_tvb); @@ -4705,7 +4705,7 @@ dissect_s1ap_CriticalityDiagnostics(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_ static int dissect_s1ap_DataCodingScheme(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 901 "./asn1/s1ap/s1ap.cnf" +#line 887 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, 8, 8, FALSE, ¶meter_tvb, NULL); @@ -5101,7 +5101,7 @@ dissect_s1ap_ENB_StatusTransfer_TransparentContainer(tvbuff_t *tvb _U_, int offs static int dissect_s1ap_ENB_UE_S1AP_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1165 "./asn1/s1ap/s1ap.cnf" +#line 1151 "./asn1/s1ap/s1ap.cnf" guint32 enb_ue_s1ap_id; struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, @@ -5121,7 +5121,6 @@ dissect_s1ap_ENBname(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr #line 244 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb=NULL; int length; - int p_offset; gboolean is_ascii; offset = dissect_per_PrintableString(tvb, offset, actx, tree, hf_index, @@ -5133,13 +5132,7 @@ dissect_s1ap_ENBname(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr length = tvb_reported_length(parameter_tvb); - is_ascii = TRUE; - for (p_offset=0; p_offset < length; p_offset++){ - if(!g_ascii_isprint(tvb_get_guint8(parameter_tvb, p_offset ))){ - is_ascii = FALSE; - break; - } - } + is_ascii = tvb_ascii_isprint(parameter_tvb, 0, length); if (is_ascii) proto_item_append_text(actx->created_item," (%s)",tvb_format_text(parameter_tvb, 0, length)); @@ -5152,7 +5145,7 @@ dissect_s1ap_ENBname(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr static int dissect_s1ap_TransportLayerAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 311 "./asn1/s1ap/s1ap.cnf" +#line 297 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb=NULL; proto_tree *subtree; gint tvb_len; @@ -5202,7 +5195,7 @@ dissect_s1ap_ENBX2TLAs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, static int dissect_s1ap_EncryptionAlgorithms(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 820 "./asn1/s1ap/s1ap.cnf" +#line 806 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, 16, 16, TRUE, ¶meter_tvb, NULL); @@ -5425,7 +5418,7 @@ dissect_s1ap_E_RABUsageReportList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t static int dissect_s1ap_T_startTimestamp(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 990 "./asn1/s1ap/s1ap.cnf" +#line 976 "./asn1/s1ap/s1ap.cnf" tvbuff_t *timestamp_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, 4, 4, FALSE, ×tamp_tvb); @@ -5433,7 +5426,7 @@ dissect_s1ap_T_startTimestamp(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act -#line 994 "./asn1/s1ap/s1ap.cnf" +#line 980 "./asn1/s1ap/s1ap.cnf" if (timestamp_tvb) { proto_item_append_text(actx->created_item, " (%s)", tvb_ntp_fmt_ts_sec(timestamp_tvb, 0)); } @@ -5446,7 +5439,7 @@ dissect_s1ap_T_startTimestamp(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act static int dissect_s1ap_T_endTimestamp(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 999 "./asn1/s1ap/s1ap.cnf" +#line 985 "./asn1/s1ap/s1ap.cnf" tvbuff_t *timestamp_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, 4, 4, FALSE, ×tamp_tvb); @@ -5454,7 +5447,7 @@ dissect_s1ap_T_endTimestamp(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx -#line 1003 "./asn1/s1ap/s1ap.cnf" +#line 989 "./asn1/s1ap/s1ap.cnf" if (timestamp_tvb) { proto_item_append_text(actx->created_item, " (%s)", tvb_ntp_fmt_ts_sec(timestamp_tvb, 0)); } @@ -5635,7 +5628,7 @@ dissect_s1ap_Extended_UEIdentityIndexValue(tvbuff_t *tvb _U_, int offset _U_, as static int dissect_s1ap_FiveGSTAC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1096 "./asn1/s1ap/s1ap.cnf" +#line 1082 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, -1, 3, 3, FALSE, ¶meter_tvb); @@ -5863,7 +5856,7 @@ static const value_string s1ap_HandoverType_vals[] = { static int dissect_s1ap_HandoverType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 361 "./asn1/s1ap/s1ap.cnf" +#line 347 "./asn1/s1ap/s1ap.cnf" struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, 5, &s1ap_data->handover_type_value, TRUE, 2, NULL); @@ -5888,7 +5881,7 @@ dissect_s1ap_Masked_IMEISV(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _ static int dissect_s1ap_MeasurementsToActivate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 943 "./asn1/s1ap/s1ap.cnf" +#line 929 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, 8, 8, FALSE, ¶meter_tvb, NULL); @@ -6075,7 +6068,7 @@ dissect_s1ap_ImmediateMDT(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U static int dissect_s1ap_IMSI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1112 "./asn1/s1ap/s1ap.cnf" +#line 1098 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, 3, 8, FALSE, ¶meter_tvb); @@ -6139,7 +6132,7 @@ dissect_s1ap_InformationOnRecommendedCellsAndENBsForPaging(tvbuff_t *tvb _U_, in static int dissect_s1ap_IntegrityProtectionAlgorithms(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 835 "./asn1/s1ap/s1ap.cnf" +#line 821 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, 16, 16, TRUE, ¶meter_tvb, NULL); @@ -6165,7 +6158,7 @@ dissect_s1ap_IntegrityProtectionAlgorithms(tvbuff_t *tvb _U_, int offset _U_, as static int dissect_s1ap_InterfacesToTrace(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 784 "./asn1/s1ap/s1ap.cnf" +#line 770 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, 8, 8, FALSE, ¶meter_tvb, NULL); @@ -6233,7 +6226,7 @@ dissect_s1ap_LastVisitedEUTRANCellInformation(tvbuff_t *tvb _U_, int offset _U_, static int dissect_s1ap_LastVisitedUTRANCellInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 856 "./asn1/s1ap/s1ap.cnf" +#line 842 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; proto_tree *subtree; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, @@ -6312,7 +6305,7 @@ dissect_s1ap_LastVisitedCell_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t static int dissect_s1ap_LPPa_PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 302 "./asn1/s1ap/s1ap.cnf" +#line 288 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb=NULL; @@ -6332,7 +6325,7 @@ dissect_s1ap_LPPa_PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, p static int dissect_s1ap_LHN_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 978 "./asn1/s1ap/s1ap.cnf" +#line 964 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, -1, 32, 256, FALSE, ¶meter_tvb); @@ -6752,7 +6745,7 @@ dissect_s1ap_MDT_Activation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx static int dissect_s1ap_MDT_Location_Info(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 962 "./asn1/s1ap/s1ap.cnf" +#line 948 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, 8, 8, FALSE, ¶meter_tvb, NULL); @@ -6872,7 +6865,7 @@ dissect_s1ap_PrivacyIndicator(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act static int dissect_s1ap_MessageIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 871 "./asn1/s1ap/s1ap.cnf" +#line 857 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_bit_string(tvb, offset, actx, tree, -1, 16, 16, FALSE, ¶meter_tvb, NULL); @@ -6900,10 +6893,9 @@ dissect_s1ap_MobilityInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t * static int dissect_s1ap_MMEname(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 267 "./asn1/s1ap/s1ap.cnf" +#line 260 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb=NULL; int length; - int p_offset; gboolean is_ascii; offset = dissect_per_PrintableString(tvb, offset, actx, tree, hf_index, @@ -6915,13 +6907,7 @@ dissect_s1ap_MMEname(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr length = tvb_reported_length(parameter_tvb); - is_ascii = TRUE; - for (p_offset=0; p_offset < length; p_offset++){ - if(!g_ascii_isprint(tvb_get_guint8(parameter_tvb, p_offset ))){ - is_ascii = FALSE; - break; - } - } + is_ascii = tvb_ascii_isprint(parameter_tvb, 0, length); if (is_ascii) proto_item_append_text(actx->created_item," (%s)",tvb_format_text(parameter_tvb, 0, length)); @@ -6981,7 +6967,7 @@ dissect_s1ap_MME_UE_S1AP_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx static int dissect_s1ap_MSClassmark2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 921 "./asn1/s1ap/s1ap.cnf" +#line 907 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, NO_BOUND, NO_BOUND, FALSE, ¶meter_tvb); @@ -7000,7 +6986,7 @@ dissect_s1ap_MSClassmark2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U static int dissect_s1ap_MSClassmark3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 929 "./asn1/s1ap/s1ap.cnf" +#line 915 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, NO_BOUND, NO_BOUND, FALSE, ¶meter_tvb); @@ -7070,7 +7056,7 @@ dissect_s1ap_MutingPatternInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ct static int dissect_s1ap_NAS_PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 293 "./asn1/s1ap/s1ap.cnf" +#line 279 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb=NULL; @@ -7090,7 +7076,7 @@ tvbuff_t *parameter_tvb=NULL; static int dissect_s1ap_NASSecurityParametersfromE_UTRAN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1120 "./asn1/s1ap/s1ap.cnf" +#line 1106 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, NO_BOUND, NO_BOUND, FALSE, ¶meter_tvb); @@ -7109,7 +7095,7 @@ dissect_s1ap_NASSecurityParametersfromE_UTRAN(tvbuff_t *tvb _U_, int offset _U_, static int dissect_s1ap_NASSecurityParameterstoE_UTRAN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1128 "./asn1/s1ap/s1ap.cnf" +#line 1114 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, NO_BOUND, NO_BOUND, FALSE, ¶meter_tvb); @@ -7230,7 +7216,7 @@ dissect_s1ap_NB_IoT_UEIdentityIndexValue(tvbuff_t *tvb _U_, int offset _U_, asn1 static int dissect_s1ap_NRencryptionAlgorithms(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1017 "./asn1/s1ap/s1ap.cnf" +#line 1003 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, 16, 16, TRUE, ¶meter_tvb, NULL); @@ -7256,7 +7242,7 @@ dissect_s1ap_NRencryptionAlgorithms(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_ static int dissect_s1ap_NRintegrityProtectionAlgorithms(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1032 "./asn1/s1ap/s1ap.cnf" +#line 1018 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, 16, 16, TRUE, ¶meter_tvb, NULL); @@ -7518,7 +7504,7 @@ dissect_s1ap_PendingDataIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t static int dissect_s1ap_Port_Number(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 342 "./asn1/s1ap/s1ap.cnf" +#line 328 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, -1, 2, 2, FALSE, ¶meter_tvb); @@ -7696,7 +7682,7 @@ static const value_string s1ap_RAT_Type_vals[] = { static int dissect_s1ap_RAT_Type(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1150 "./asn1/s1ap/s1ap.cnf" +#line 1136 "./asn1/s1ap/s1ap.cnf" guint32 rat_type = 0xffffffff; struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, @@ -7753,7 +7739,7 @@ dissect_s1ap_RequestType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_ static int dissect_s1ap_RIMInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 624 "./asn1/s1ap/s1ap.cnf" +#line 610 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; proto_tree *subtree; @@ -7868,7 +7854,7 @@ dissect_s1ap_RepetitionPeriod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act static int dissect_s1ap_UE_RLF_Report_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 719 "./asn1/s1ap/s1ap.cnf" +#line 705 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; proto_tree *subtree; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, @@ -7891,7 +7877,7 @@ dissect_s1ap_UE_RLF_Report_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx static int dissect_s1ap_UE_RLF_Report_Container_for_extended_bands(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 733 "./asn1/s1ap/s1ap.cnf" +#line 719 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; proto_tree *subtree; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, @@ -7930,7 +7916,7 @@ dissect_s1ap_RLFReportInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t static int dissect_s1ap_RRC_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 518 "./asn1/s1ap/s1ap.cnf" +#line 504 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; @@ -8118,7 +8104,7 @@ dissect_s1ap_SecondaryRATDataUsageReportItem(tvbuff_t *tvb _U_, int offset _U_, static int dissect_s1ap_SerialNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 878 "./asn1/s1ap/s1ap.cnf" +#line 864 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, 16, 16, FALSE, ¶meter_tvb, NULL); @@ -8332,7 +8318,7 @@ dissect_s1ap_SynchronisationInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ static int dissect_s1ap_Source_ToTarget_TransparentContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 386 "./asn1/s1ap/s1ap.cnf" +#line 372 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; proto_tree *subtree; @@ -8711,7 +8697,7 @@ static const per_sequence_t SupportedTAs_Item_sequence[] = { static int dissect_s1ap_SupportedTAs_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1136 "./asn1/s1ap/s1ap.cnf" +#line 1122 "./asn1/s1ap/s1ap.cnf" struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); if (!PINFO_FD_VISITED(actx->pinfo) && @@ -8726,7 +8712,7 @@ dissect_s1ap_SupportedTAs_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_SupportedTAs_Item, SupportedTAs_Item_sequence); -#line 1147 "./asn1/s1ap/s1ap.cnf" +#line 1133 "./asn1/s1ap/s1ap.cnf" s1ap_data->supported_ta = NULL; @@ -8968,7 +8954,7 @@ dissect_s1ap_TargeteNB_ToSourceeNB_TransparentContainer(tvbuff_t *tvb _U_, int o static int dissect_s1ap_Target_ToSource_TransparentContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 452 "./asn1/s1ap/s1ap.cnf" +#line 438 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; proto_tree *subtree; @@ -9089,7 +9075,7 @@ dissect_s1ap_TransportInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t static int dissect_s1ap_E_UTRAN_Trace_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 773 "./asn1/s1ap/s1ap.cnf" +#line 759 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; proto_tree *subtree; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, @@ -9325,7 +9311,7 @@ dissect_s1ap_UEIdentityIndexValue(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t static int dissect_s1ap_UE_HistoryInformationFromTheUE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 581 "./asn1/s1ap/s1ap.cnf" +#line 567 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; proto_tree *subtree; @@ -9371,7 +9357,7 @@ dissect_s1ap_UEPagingID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, static int dissect_s1ap_UERadioCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 594 "./asn1/s1ap/s1ap.cnf" +#line 580 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; proto_tree *subtree; @@ -9404,7 +9390,7 @@ dissect_s1ap_UERadioCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac static int dissect_s1ap_UERadioCapabilityForPaging(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 675 "./asn1/s1ap/s1ap.cnf" +#line 661 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; proto_tree *subtree; @@ -9561,7 +9547,7 @@ dissect_s1ap_UEUserPlaneCIoTSupportIndicator(tvbuff_t *tvb _U_, int offset _U_, static int dissect_s1ap_UE_Application_Layer_Measurement_Capability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1047 "./asn1/s1ap/s1ap.cnf" +#line 1033 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, 8, 8, FALSE, ¶meter_tvb, NULL); @@ -9684,7 +9670,7 @@ dissect_s1ap_WarningAreaList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx static int dissect_s1ap_WarningType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 891 "./asn1/s1ap/s1ap.cnf" +#line 877 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, 2, 2, FALSE, ¶meter_tvb); @@ -9715,7 +9701,7 @@ dissect_s1ap_WarningSecurityInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t * static int dissect_s1ap_WarningMessageContents(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 912 "./asn1/s1ap/s1ap.cnf" +#line 898 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, 1, 9600, FALSE, ¶meter_tvb); @@ -9750,7 +9736,7 @@ dissect_s1ap_WLANMeasConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx static int dissect_s1ap_WLANName(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1209 "./asn1/s1ap/s1ap.cnf" +#line 1195 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, -1, 1, 32, FALSE, ¶meter_tvb); @@ -9905,7 +9891,7 @@ static const per_sequence_t HandoverRequired_sequence[] = { static int dissect_s1ap_HandoverRequired(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 366 "./asn1/s1ap/s1ap.cnf" +#line 352 "./asn1/s1ap/s1ap.cnf" struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); s1ap_data->handover_type_value = 0xff; col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverRequired"); @@ -9924,7 +9910,7 @@ static const per_sequence_t HandoverCommand_sequence[] = { static int dissect_s1ap_HandoverCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 369 "./asn1/s1ap/s1ap.cnf" +#line 355 "./asn1/s1ap/s1ap.cnf" struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); s1ap_data->handover_type_value = 0xff; col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverCommand"); @@ -9971,7 +9957,7 @@ static const per_sequence_t HandoverPreparationFailure_sequence[] = { static int dissect_s1ap_HandoverPreparationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2006 "./asn1/s1ap/s1ap.cnf" +#line 1992 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverPreparationFailure"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -9988,7 +9974,7 @@ static const per_sequence_t HandoverRequest_sequence[] = { static int dissect_s1ap_HandoverRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 372 "./asn1/s1ap/s1ap.cnf" +#line 358 "./asn1/s1ap/s1ap.cnf" struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); s1ap_data->handover_type_value = 0xff; col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverRequest"); @@ -10034,7 +10020,7 @@ static const per_sequence_t HandoverRequestAcknowledge_sequence[] = { static int dissect_s1ap_HandoverRequestAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 375 "./asn1/s1ap/s1ap.cnf" +#line 361 "./asn1/s1ap/s1ap.cnf" struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); s1ap_data->handover_type_value = 0xff; @@ -10109,7 +10095,7 @@ static const per_sequence_t HandoverFailure_sequence[] = { static int dissect_s1ap_HandoverFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2012 "./asn1/s1ap/s1ap.cnf" +#line 1998 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverFailure"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -10126,7 +10112,7 @@ static const per_sequence_t HandoverNotify_sequence[] = { static int dissect_s1ap_HandoverNotify(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2014 "./asn1/s1ap/s1ap.cnf" +#line 2000 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverNotify"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -10143,7 +10129,7 @@ static const per_sequence_t PathSwitchRequest_sequence[] = { static int dissect_s1ap_PathSwitchRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2016 "./asn1/s1ap/s1ap.cnf" +#line 2002 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PathSwitchRequest"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -10186,7 +10172,7 @@ static const per_sequence_t PathSwitchRequestAcknowledge_sequence[] = { static int dissect_s1ap_PathSwitchRequestAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2018 "./asn1/s1ap/s1ap.cnf" +#line 2004 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PathSwitchRequestAcknowledge"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -10229,7 +10215,7 @@ static const per_sequence_t PathSwitchRequestFailure_sequence[] = { static int dissect_s1ap_PathSwitchRequestFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2020 "./asn1/s1ap/s1ap.cnf" +#line 2006 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PathSwitchRequestFailure"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -10246,7 +10232,7 @@ static const per_sequence_t HandoverCancel_sequence[] = { static int dissect_s1ap_HandoverCancel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2022 "./asn1/s1ap/s1ap.cnf" +#line 2008 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverCancel"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -10263,7 +10249,7 @@ static const per_sequence_t HandoverCancelAcknowledge_sequence[] = { static int dissect_s1ap_HandoverCancelAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2024 "./asn1/s1ap/s1ap.cnf" +#line 2010 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverCancelAcknowledge"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -10280,7 +10266,7 @@ static const per_sequence_t E_RABSetupRequest_sequence[] = { static int dissect_s1ap_E_RABSetupRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2026 "./asn1/s1ap/s1ap.cnf" +#line 2012 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABSetupRequest"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -10330,7 +10316,7 @@ static const per_sequence_t E_RABSetupResponse_sequence[] = { static int dissect_s1ap_E_RABSetupResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2028 "./asn1/s1ap/s1ap.cnf" +#line 2014 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABSetupResponse"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -10378,7 +10364,7 @@ static const per_sequence_t E_RABModifyRequest_sequence[] = { static int dissect_s1ap_E_RABModifyRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2030 "./asn1/s1ap/s1ap.cnf" +#line 2016 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABModifyRequest"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -10426,7 +10412,7 @@ static const per_sequence_t E_RABModifyResponse_sequence[] = { static int dissect_s1ap_E_RABModifyResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2032 "./asn1/s1ap/s1ap.cnf" +#line 2018 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABModifyResponse"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -10472,7 +10458,7 @@ static const per_sequence_t E_RABReleaseCommand_sequence[] = { static int dissect_s1ap_E_RABReleaseCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2034 "./asn1/s1ap/s1ap.cnf" +#line 2020 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABReleaseCommand"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -10489,7 +10475,7 @@ static const per_sequence_t E_RABReleaseResponse_sequence[] = { static int dissect_s1ap_E_RABReleaseResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2036 "./asn1/s1ap/s1ap.cnf" +#line 2022 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABReleaseResponse"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -10535,7 +10521,7 @@ static const per_sequence_t E_RABReleaseIndication_sequence[] = { static int dissect_s1ap_E_RABReleaseIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2038 "./asn1/s1ap/s1ap.cnf" +#line 2024 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABReleaseIndication"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -10552,7 +10538,7 @@ static const per_sequence_t InitialContextSetupRequest_sequence[] = { static int dissect_s1ap_InitialContextSetupRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2040 "./asn1/s1ap/s1ap.cnf" +#line 2026 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "InitialContextSetupRequest"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -10602,7 +10588,7 @@ static const per_sequence_t InitialContextSetupResponse_sequence[] = { static int dissect_s1ap_InitialContextSetupResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2042 "./asn1/s1ap/s1ap.cnf" +#line 2028 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "InitialContextSetupResponse"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -10650,7 +10636,7 @@ static const per_sequence_t InitialContextSetupFailure_sequence[] = { static int dissect_s1ap_InitialContextSetupFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2044 "./asn1/s1ap/s1ap.cnf" +#line 2030 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "InitialContextSetupFailure"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -10667,7 +10653,7 @@ static const per_sequence_t Paging_sequence[] = { static int dissect_s1ap_Paging(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2046 "./asn1/s1ap/s1ap.cnf" +#line 2032 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Paging"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -10713,7 +10699,7 @@ static const per_sequence_t UEContextReleaseRequest_sequence[] = { static int dissect_s1ap_UEContextReleaseRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2048 "./asn1/s1ap/s1ap.cnf" +#line 2034 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextReleaseRequest"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -10730,7 +10716,7 @@ static const per_sequence_t UEContextReleaseCommand_sequence[] = { static int dissect_s1ap_UEContextReleaseCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2050 "./asn1/s1ap/s1ap.cnf" +#line 2036 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextReleaseCommand"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -10747,7 +10733,7 @@ static const per_sequence_t UEContextReleaseComplete_sequence[] = { static int dissect_s1ap_UEContextReleaseComplete(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2052 "./asn1/s1ap/s1ap.cnf" +#line 2038 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextReleaseComplete"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -10764,7 +10750,7 @@ static const per_sequence_t UEContextModificationRequest_sequence[] = { static int dissect_s1ap_UEContextModificationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2054 "./asn1/s1ap/s1ap.cnf" +#line 2040 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationRequest"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -10781,7 +10767,7 @@ static const per_sequence_t UEContextModificationResponse_sequence[] = { static int dissect_s1ap_UEContextModificationResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2056 "./asn1/s1ap/s1ap.cnf" +#line 2042 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationResponse"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -10798,7 +10784,7 @@ static const per_sequence_t UEContextModificationFailure_sequence[] = { static int dissect_s1ap_UEContextModificationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2058 "./asn1/s1ap/s1ap.cnf" +#line 2044 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationFailure"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -10815,7 +10801,7 @@ static const per_sequence_t UERadioCapabilityMatchRequest_sequence[] = { static int dissect_s1ap_UERadioCapabilityMatchRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2060 "./asn1/s1ap/s1ap.cnf" +#line 2046 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UERadioCapabilityMatchRequest"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -10832,7 +10818,7 @@ static const per_sequence_t UERadioCapabilityMatchResponse_sequence[] = { static int dissect_s1ap_UERadioCapabilityMatchResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2062 "./asn1/s1ap/s1ap.cnf" +#line 2048 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UERadioCapabilityMatchResponse"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -10849,7 +10835,7 @@ static const per_sequence_t DownlinkNASTransport_sequence[] = { static int dissect_s1ap_DownlinkNASTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 353 "./asn1/s1ap/s1ap.cnf" +#line 339 "./asn1/s1ap/s1ap.cnf" /* Set the direction of the message */ actx->pinfo->link_dir=P2P_DIR_DL; @@ -10869,7 +10855,7 @@ static const per_sequence_t InitialUEMessage_sequence[] = { static int dissect_s1ap_InitialUEMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 349 "./asn1/s1ap/s1ap.cnf" +#line 335 "./asn1/s1ap/s1ap.cnf" /* Set the direction of the message */ actx->pinfo->link_dir=P2P_DIR_UL; @@ -10889,7 +10875,7 @@ static const per_sequence_t UplinkNASTransport_sequence[] = { static int dissect_s1ap_UplinkNASTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 357 "./asn1/s1ap/s1ap.cnf" +#line 343 "./asn1/s1ap/s1ap.cnf" /* Set the direction of the message */ actx->pinfo->link_dir=P2P_DIR_UL; @@ -10909,7 +10895,7 @@ static const per_sequence_t NASNonDeliveryIndication_sequence[] = { static int dissect_s1ap_NASNonDeliveryIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2070 "./asn1/s1ap/s1ap.cnf" +#line 2056 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "NASNonDeliveryIndication"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -10926,7 +10912,7 @@ static const per_sequence_t RerouteNASRequest_sequence[] = { static int dissect_s1ap_RerouteNASRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2072 "./asn1/s1ap/s1ap.cnf" +#line 2058 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RerouteNASRequest"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -10939,7 +10925,7 @@ dissect_s1ap_RerouteNASRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac static int dissect_s1ap_S1_Message(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 762 "./asn1/s1ap/s1ap.cnf" +#line 748 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; proto_tree *subtree; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, @@ -10965,7 +10951,7 @@ static const per_sequence_t NASDeliveryIndication_sequence[] = { static int dissect_s1ap_NASDeliveryIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2176 "./asn1/s1ap/s1ap.cnf" +#line 2162 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "NASDeliveryIndication"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -10982,7 +10968,7 @@ static const per_sequence_t Reset_sequence[] = { static int dissect_s1ap_Reset(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2074 "./asn1/s1ap/s1ap.cnf" +#line 2060 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Reset"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -11050,7 +11036,7 @@ static const per_sequence_t ResetAcknowledge_sequence[] = { static int dissect_s1ap_ResetAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2076 "./asn1/s1ap/s1ap.cnf" +#line 2062 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ResetAcknowledge"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -11095,7 +11081,7 @@ static const per_sequence_t S1SetupRequest_sequence[] = { static int dissect_s1ap_S1SetupRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2080 "./asn1/s1ap/s1ap.cnf" +#line 2066 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "S1SetupRequest"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -11112,7 +11098,7 @@ static const per_sequence_t S1SetupResponse_sequence[] = { static int dissect_s1ap_S1SetupResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2082 "./asn1/s1ap/s1ap.cnf" +#line 2068 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "S1SetupResponse"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -11129,7 +11115,7 @@ static const per_sequence_t S1SetupFailure_sequence[] = { static int dissect_s1ap_S1SetupFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2084 "./asn1/s1ap/s1ap.cnf" +#line 2070 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "S1SetupFailure"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -11146,7 +11132,7 @@ static const per_sequence_t ENBConfigurationUpdate_sequence[] = { static int dissect_s1ap_ENBConfigurationUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2086 "./asn1/s1ap/s1ap.cnf" +#line 2072 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBConfigurationUpdate"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -11163,7 +11149,7 @@ static const per_sequence_t ENBConfigurationUpdateAcknowledge_sequence[] = { static int dissect_s1ap_ENBConfigurationUpdateAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2088 "./asn1/s1ap/s1ap.cnf" +#line 2074 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBConfigurationUpdateAcknowledge"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -11180,7 +11166,7 @@ static const per_sequence_t ENBConfigurationUpdateFailure_sequence[] = { static int dissect_s1ap_ENBConfigurationUpdateFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2090 "./asn1/s1ap/s1ap.cnf" +#line 2076 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBConfigurationUpdateFailure"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -11197,7 +11183,7 @@ static const per_sequence_t MMEConfigurationUpdate_sequence[] = { static int dissect_s1ap_MMEConfigurationUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2092 "./asn1/s1ap/s1ap.cnf" +#line 2078 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MMEConfigurationUpdate"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -11214,7 +11200,7 @@ static const per_sequence_t MMEConfigurationUpdateAcknowledge_sequence[] = { static int dissect_s1ap_MMEConfigurationUpdateAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2094 "./asn1/s1ap/s1ap.cnf" +#line 2080 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MMEConfigurationUpdateAcknowledge"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -11231,7 +11217,7 @@ static const per_sequence_t MMEConfigurationUpdateFailure_sequence[] = { static int dissect_s1ap_MMEConfigurationUpdateFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2096 "./asn1/s1ap/s1ap.cnf" +#line 2082 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MMEConfigurationUpdateFailure"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -11248,7 +11234,7 @@ static const per_sequence_t DownlinkS1cdma2000tunnelling_sequence[] = { static int dissect_s1ap_DownlinkS1cdma2000tunnelling(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2098 "./asn1/s1ap/s1ap.cnf" +#line 2084 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DownlinkS1cdma2000tunnelling"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -11265,7 +11251,7 @@ static const per_sequence_t UplinkS1cdma2000tunnelling_sequence[] = { static int dissect_s1ap_UplinkS1cdma2000tunnelling(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2100 "./asn1/s1ap/s1ap.cnf" +#line 2086 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UplinkS1cdma2000tunnelling"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -11282,7 +11268,7 @@ static const per_sequence_t UECapabilityInfoIndication_sequence[] = { static int dissect_s1ap_UECapabilityInfoIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2102 "./asn1/s1ap/s1ap.cnf" +#line 2088 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UECapabilityInfoIndication"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -11299,7 +11285,7 @@ static const per_sequence_t ENBStatusTransfer_sequence[] = { static int dissect_s1ap_ENBStatusTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2104 "./asn1/s1ap/s1ap.cnf" +#line 2090 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBStatusTransfer"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -11316,7 +11302,7 @@ static const per_sequence_t MMEStatusTransfer_sequence[] = { static int dissect_s1ap_MMEStatusTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2106 "./asn1/s1ap/s1ap.cnf" +#line 2092 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MMEStatusTransfer"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -11333,7 +11319,7 @@ static const per_sequence_t TraceStart_sequence[] = { static int dissect_s1ap_TraceStart(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2108 "./asn1/s1ap/s1ap.cnf" +#line 2094 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "TraceStart"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -11350,7 +11336,7 @@ static const per_sequence_t TraceFailureIndication_sequence[] = { static int dissect_s1ap_TraceFailureIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2110 "./asn1/s1ap/s1ap.cnf" +#line 2096 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "TraceFailureIndication"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -11367,7 +11353,7 @@ static const per_sequence_t DeactivateTrace_sequence[] = { static int dissect_s1ap_DeactivateTrace(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2112 "./asn1/s1ap/s1ap.cnf" +#line 2098 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DeactivateTrace"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -11384,7 +11370,7 @@ static const per_sequence_t CellTrafficTrace_sequence[] = { static int dissect_s1ap_CellTrafficTrace(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2114 "./asn1/s1ap/s1ap.cnf" +#line 2100 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "CellTrafficTrace"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -11401,7 +11387,7 @@ static const per_sequence_t LocationReportingControl_sequence[] = { static int dissect_s1ap_LocationReportingControl(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2116 "./asn1/s1ap/s1ap.cnf" +#line 2102 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "LocationReportingControl"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -11418,7 +11404,7 @@ static const per_sequence_t LocationReportingFailureIndication_sequence[] = { static int dissect_s1ap_LocationReportingFailureIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2118 "./asn1/s1ap/s1ap.cnf" +#line 2104 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "LocationReportingFailureIndication"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -11435,7 +11421,7 @@ static const per_sequence_t LocationReport_sequence[] = { static int dissect_s1ap_LocationReport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2120 "./asn1/s1ap/s1ap.cnf" +#line 2106 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "LocationReport"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -11452,7 +11438,7 @@ static const per_sequence_t OverloadStart_sequence[] = { static int dissect_s1ap_OverloadStart(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2122 "./asn1/s1ap/s1ap.cnf" +#line 2108 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "OverloadStart"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -11469,7 +11455,7 @@ static const per_sequence_t OverloadStop_sequence[] = { static int dissect_s1ap_OverloadStop(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2124 "./asn1/s1ap/s1ap.cnf" +#line 2110 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "OverloadStop"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -11486,7 +11472,7 @@ static const per_sequence_t WriteReplaceWarningRequest_sequence[] = { static int dissect_s1ap_WriteReplaceWarningRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2126 "./asn1/s1ap/s1ap.cnf" +#line 2112 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "WriteReplaceWarningRequest"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -11503,7 +11489,7 @@ static const per_sequence_t WriteReplaceWarningResponse_sequence[] = { static int dissect_s1ap_WriteReplaceWarningResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2128 "./asn1/s1ap/s1ap.cnf" +#line 2114 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "WriteReplaceWarningResponse"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -11520,7 +11506,7 @@ static const per_sequence_t ENBDirectInformationTransfer_sequence[] = { static int dissect_s1ap_ENBDirectInformationTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2130 "./asn1/s1ap/s1ap.cnf" +#line 2116 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBDirectInformationTransfer"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -11557,7 +11543,7 @@ static const per_sequence_t MMEDirectInformationTransfer_sequence[] = { static int dissect_s1ap_MMEDirectInformationTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2132 "./asn1/s1ap/s1ap.cnf" +#line 2118 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MMEDirectInformationTransfer"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -11574,7 +11560,7 @@ static const per_sequence_t ENBConfigurationTransfer_sequence[] = { static int dissect_s1ap_ENBConfigurationTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2134 "./asn1/s1ap/s1ap.cnf" +#line 2120 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBConfigurationTransfer"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -11591,7 +11577,7 @@ static const per_sequence_t MMEConfigurationTransfer_sequence[] = { static int dissect_s1ap_MMEConfigurationTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2136 "./asn1/s1ap/s1ap.cnf" +#line 2122 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MMEConfigurationTransfer"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -11608,7 +11594,7 @@ static const per_sequence_t PrivateMessage_sequence[] = { static int dissect_s1ap_PrivateMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2138 "./asn1/s1ap/s1ap.cnf" +#line 2124 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PrivateMessage"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -11625,7 +11611,7 @@ static const per_sequence_t KillRequest_sequence[] = { static int dissect_s1ap_KillRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2140 "./asn1/s1ap/s1ap.cnf" +#line 2126 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "KillRequest"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -11642,7 +11628,7 @@ static const per_sequence_t KillResponse_sequence[] = { static int dissect_s1ap_KillResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2142 "./asn1/s1ap/s1ap.cnf" +#line 2128 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "KillResponse"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -11659,7 +11645,7 @@ static const per_sequence_t PWSRestartIndication_sequence[] = { static int dissect_s1ap_PWSRestartIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2144 "./asn1/s1ap/s1ap.cnf" +#line 2130 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PWSRestartIndication"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -11676,7 +11662,7 @@ static const per_sequence_t PWSFailureIndication_sequence[] = { static int dissect_s1ap_PWSFailureIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2146 "./asn1/s1ap/s1ap.cnf" +#line 2132 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PWSFailureIndication"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -11693,7 +11679,7 @@ static const per_sequence_t DownlinkUEAssociatedLPPaTransport_sequence[] = { static int dissect_s1ap_DownlinkUEAssociatedLPPaTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2148 "./asn1/s1ap/s1ap.cnf" +#line 2134 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DownlinkUEAssociatedLPPaTransport"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -11710,7 +11696,7 @@ static const per_sequence_t UplinkUEAssociatedLPPaTransport_sequence[] = { static int dissect_s1ap_UplinkUEAssociatedLPPaTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2150 "./asn1/s1ap/s1ap.cnf" +#line 2136 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UplinkUEAssociatedLPPaTransport"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -11727,7 +11713,7 @@ static const per_sequence_t DownlinkNonUEAssociatedLPPaTransport_sequence[] = { static int dissect_s1ap_DownlinkNonUEAssociatedLPPaTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2152 "./asn1/s1ap/s1ap.cnf" +#line 2138 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DownlinkNonUEAssociatedLPPaTransport"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -11744,7 +11730,7 @@ static const per_sequence_t UplinkNonUEAssociatedLPPaTransport_sequence[] = { static int dissect_s1ap_UplinkNonUEAssociatedLPPaTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2154 "./asn1/s1ap/s1ap.cnf" +#line 2140 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UplinkNonUEAssociatedLPPaTransport"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -11761,7 +11747,7 @@ static const per_sequence_t E_RABModificationIndication_sequence[] = { static int dissect_s1ap_E_RABModificationIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2156 "./asn1/s1ap/s1ap.cnf" +#line 2142 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABModificationIndication"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -11848,7 +11834,7 @@ static const per_sequence_t E_RABModificationConfirm_sequence[] = { static int dissect_s1ap_E_RABModificationConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2158 "./asn1/s1ap/s1ap.cnf" +#line 2144 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABModificationConfirm"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -11894,7 +11880,7 @@ static const per_sequence_t UEContextModificationIndication_sequence[] = { static int dissect_s1ap_UEContextModificationIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2160 "./asn1/s1ap/s1ap.cnf" +#line 2146 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationIndication"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -11911,7 +11897,7 @@ static const per_sequence_t UEContextModificationConfirm_sequence[] = { static int dissect_s1ap_UEContextModificationConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2162 "./asn1/s1ap/s1ap.cnf" +#line 2148 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationConfirm"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -11928,7 +11914,7 @@ static const per_sequence_t UEContextSuspendRequest_sequence[] = { static int dissect_s1ap_UEContextSuspendRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2164 "./asn1/s1ap/s1ap.cnf" +#line 2150 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextSuspendRequest"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -11945,7 +11931,7 @@ static const per_sequence_t UEContextSuspendResponse_sequence[] = { static int dissect_s1ap_UEContextSuspendResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2166 "./asn1/s1ap/s1ap.cnf" +#line 2152 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextSuspendResponse"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -11962,7 +11948,7 @@ static const per_sequence_t UEContextResumeRequest_sequence[] = { static int dissect_s1ap_UEContextResumeRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2168 "./asn1/s1ap/s1ap.cnf" +#line 2154 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextResumeRequest"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -12004,7 +11990,7 @@ static const per_sequence_t UEContextResumeResponse_sequence[] = { static int dissect_s1ap_UEContextResumeResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2170 "./asn1/s1ap/s1ap.cnf" +#line 2156 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextResumeResponse"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -12046,7 +12032,7 @@ static const per_sequence_t UEContextResumeFailure_sequence[] = { static int dissect_s1ap_UEContextResumeFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2172 "./asn1/s1ap/s1ap.cnf" +#line 2158 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextResumeFailure"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -12063,7 +12049,7 @@ static const per_sequence_t ConnectionEstablishmentIndication_sequence[] = { static int dissect_s1ap_ConnectionEstablishmentIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2174 "./asn1/s1ap/s1ap.cnf" +#line 2160 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ConnectionEstablishmentIndication"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -12080,7 +12066,7 @@ static const per_sequence_t RetrieveUEInformation_sequence[] = { static int dissect_s1ap_RetrieveUEInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2178 "./asn1/s1ap/s1ap.cnf" +#line 2164 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RetrieveUEInformation"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -12097,7 +12083,7 @@ static const per_sequence_t UEInformationTransfer_sequence[] = { static int dissect_s1ap_UEInformationTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2180 "./asn1/s1ap/s1ap.cnf" +#line 2166 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEInformationTransfer"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -12114,7 +12100,7 @@ static const per_sequence_t ENBCPRelocationIndication_sequence[] = { static int dissect_s1ap_ENBCPRelocationIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2182 "./asn1/s1ap/s1ap.cnf" +#line 2168 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBCPRelocationIndication"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -12131,7 +12117,7 @@ static const per_sequence_t MMECPRelocationIndication_sequence[] = { static int dissect_s1ap_MMECPRelocationIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2184 "./asn1/s1ap/s1ap.cnf" +#line 2170 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MMECPRelocationIndication"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -12148,7 +12134,7 @@ static const per_sequence_t SecondaryRATDataUsageReport_sequence[] = { static int dissect_s1ap_SecondaryRATDataUsageReport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2186 "./asn1/s1ap/s1ap.cnf" +#line 2172 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SecondaryRATDataUsageReport"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -12619,7 +12605,7 @@ dissect_s1ap_CellStateIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t * static int dissect_s1ap_T_uERLFReportContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 747 "./asn1/s1ap/s1ap.cnf" +#line 733 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; proto_tree *subtree; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, diff --git a/epan/tvbuff.c b/epan/tvbuff.c index c759b91a26..9d3ca4b82f 100644 --- a/epan/tvbuff.c +++ b/epan/tvbuff.c @@ -3330,6 +3330,17 @@ tvb_get_nstringz0(tvbuff_t *tvb, const gint offset, const guint bufsize, guint8* } } +gboolean tvb_ascii_isprint(tvbuff_t *tvb, const gint offset, const gint length) +{ + const guint8* buf = tvb_get_ptr(tvb, offset, length); + + for (int i = 0; i < length; i++, buf++) + if (!g_ascii_isprint(*buf)) + return FALSE; + + return TRUE; +} + static ws_mempbrk_pattern pbrk_crlf; /* diff --git a/epan/tvbuff.h b/epan/tvbuff.h index 2c4df952c1..e2ec44c083 100644 --- a/epan/tvbuff.h +++ b/epan/tvbuff.h @@ -732,6 +732,13 @@ WS_DLL_PUBLIC gint tvb_get_nstringz(tvbuff_t *tvb, const gint offset, WS_DLL_PUBLIC gint tvb_get_nstringz0(tvbuff_t *tvb, const gint offset, const guint bufsize, guint8 *buffer); +/** Iterates over the provided portion of the tvb checking that each byte +* is an ascii printable character. +* Returns TRUE if all bytes are printable, FALSE otherwise +*/ +WS_DLL_PUBLIC gboolean tvb_ascii_isprint(tvbuff_t *tvb, const gint offset, + const gint length); + /** * Given a tvbuff, an offset into the tvbuff, and a length that starts * at that offset (which may be -1 for "all the way to the end of the -- cgit v1.2.3