diff options
author | Pascal Quantin <pascal.quantin@gmail.com> | 2014-04-22 23:59:39 +0200 |
---|---|---|
committer | Pascal Quantin <pascal.quantin@gmail.com> | 2014-04-22 22:08:30 +0000 |
commit | 490a8a6148bf6424409e72c48541ffcb98e2b3c7 (patch) | |
tree | 2621319d617e47ae7337c63eae4fac1f80d9e8da /epan/dissectors/packet-kerberos.c | |
parent | f746d5ec1daaa58802989dae8cbb731582c44d19 (diff) |
Kerberos: define HostAddress/addr-type as a FT_UINT32 field
Fixes part of bug 10019
Change-Id: Id367d6c86533c840ea2ff40ef96b1c1854b96150
Reviewed-on: https://code.wireshark.org/review/1288
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Diffstat (limited to 'epan/dissectors/packet-kerberos.c')
-rw-r--r-- | epan/dissectors/packet-kerberos.c | 68 |
1 files changed, 33 insertions, 35 deletions
diff --git a/epan/dissectors/packet-kerberos.c b/epan/dissectors/packet-kerberos.c index bf4d52f167..82b2a27872 100644 --- a/epan/dissectors/packet-kerberos.c +++ b/epan/dissectors/packet-kerberos.c @@ -1479,6 +1479,7 @@ static const value_string krb5_transited_types[] = { { 1 , "DOMAIN-X500-COMPRESS" }, { 0 , NULL } }; +#endif static const value_string krb5_address_types[] = { { KRB5_ADDR_IPv4, "IPv4"}, @@ -1487,11 +1488,10 @@ static const value_string krb5_address_types[] = { { KRB5_ADDR_ISO, "ISO"}, { KRB5_ADDR_DECNET, "DECNET"}, { KRB5_ADDR_APPLETALK, "APPLETALK"}, - { KRB5_ADDR_NETBIOS, "NETBIOS"}, + { KRB5_ADDR_NETBIOS, "NETBIOS"}, { KRB5_ADDR_IPv6, "IPv6"}, - { 0, NULL }, + { 0, NULL }, }; -#endif static const value_string krb5_msg_types[] = { { KRB5_MSG_TICKET, "Ticket" }, @@ -2037,7 +2037,7 @@ static const value_string kerberos_ENCTYPE_vals[] = { static int dissect_kerberos_ENCTYPE(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 233 "../../asn1/kerberos/kerberos.cnf" +#line 236 "../../asn1/kerberos/kerberos.cnf" actx->value_ptr = wmem_alloc(wmem_packet_scope(), sizeof(guint32)); offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, @@ -2062,7 +2062,7 @@ dissect_kerberos_UInt32(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset static int dissect_kerberos_T_encryptedTicketData_cipher(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 239 "../../asn1/kerberos/kerberos.cnf" +#line 242 "../../asn1/kerberos/kerberos.cnf" /**/#ifdef HAVE_KERBEROS offset=dissect_ber_octet_string_wcb(FALSE, actx, tree, tvb, offset, hf_index, dissect_krb5_decrypt_ticket_data); /**/#else @@ -2146,7 +2146,7 @@ static const value_string kerberos_CKSUMTYPE_vals[] = { static int dissect_kerberos_CKSUMTYPE(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 296 "../../asn1/kerberos/kerberos.cnf" +#line 299 "../../asn1/kerberos/kerberos.cnf" actx->value_ptr = wmem_alloc(wmem_packet_scope(), sizeof(guint32)); offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, @@ -2161,7 +2161,7 @@ dissect_kerberos_CKSUMTYPE(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off static int dissect_kerberos_T_checksum(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 302 "../../asn1/kerberos/kerberos.cnf" +#line 305 "../../asn1/kerberos/kerberos.cnf" tvbuff_t *next_tvb; guint32 checksum_type = 0; @@ -2222,7 +2222,7 @@ dissect_kerberos_KerberosTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int static int dissect_kerberos_Int32(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 113 "../../asn1/kerberos/kerberos.cnf" +#line 116 "../../asn1/kerberos/kerberos.cnf" offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, (guint32*)actx->value_ptr); @@ -2236,7 +2236,7 @@ dissect_kerberos_Int32(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset static int dissect_kerberos_T_keytype(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 320 "../../asn1/kerberos/kerberos.cnf" +#line 323 "../../asn1/kerberos/kerberos.cnf" kerberos_key_t* key = (kerberos_key_t*)wmem_alloc(wmem_packet_scope(), sizeof(kerberos_key_t)); actx->value_ptr = key; @@ -2253,7 +2253,7 @@ dissect_kerberos_T_keytype(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off static int dissect_kerberos_T_keyvalue(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 328 "../../asn1/kerberos/kerberos.cnf" +#line 331 "../../asn1/kerberos/kerberos.cnf" kerberos_key_t* key = (kerberos_key_t*)actx->value_ptr; if (key != NULL) { @@ -2279,7 +2279,7 @@ static const ber_sequence_t EncryptionKey_sequence[] = { static int dissect_kerberos_EncryptionKey(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 338 "../../asn1/kerberos/kerberos.cnf" +#line 341 "../../asn1/kerberos/kerberos.cnf" kerberos_key_t* key = (kerberos_key_t*)actx->value_ptr; offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, @@ -2301,7 +2301,7 @@ dissect_kerberos_EncryptionKey(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int static int dissect_kerberos_T_ad_type(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 349 "../../asn1/kerberos/kerberos.cnf" +#line 352 "../../asn1/kerberos/kerberos.cnf" actx->value_ptr = wmem_alloc(wmem_packet_scope(), sizeof(guint32)); offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, @@ -2316,7 +2316,7 @@ dissect_kerberos_T_ad_type(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off static int dissect_kerberos_T_ad_data(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 355 "../../asn1/kerberos/kerberos.cnf" +#line 358 "../../asn1/kerberos/kerberos.cnf" guint32 adtype = 0; if (actx->value_ptr) { @@ -2454,7 +2454,7 @@ dissect_kerberos_TransitedEncoding(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, static int dissect_kerberos_T_addr_type(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 370 "../../asn1/kerberos/kerberos.cnf" +#line 373 "../../asn1/kerberos/kerberos.cnf" actx->value_ptr = wmem_alloc(wmem_packet_scope(), sizeof(guint32)); offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, @@ -2462,7 +2462,6 @@ dissect_kerberos_T_addr_type(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o - return offset; } @@ -2470,7 +2469,7 @@ dissect_kerberos_T_addr_type(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o static int dissect_kerberos_T_address(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 176 "../../asn1/kerberos/kerberos.cnf" +#line 179 "../../asn1/kerberos/kerberos.cnf" gint8 appclass; gboolean pc; gint32 tag; @@ -2609,7 +2608,7 @@ static const value_string kerberos_MESSAGE_TYPE_vals[] = { static int dissect_kerberos_MESSAGE_TYPE(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 61 "../../asn1/kerberos/kerberos.cnf" +#line 64 "../../asn1/kerberos/kerberos.cnf" guint32 msgtype; offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, @@ -2618,7 +2617,7 @@ guint32 msgtype; -#line 66 "../../asn1/kerberos/kerberos.cnf" +#line 69 "../../asn1/kerberos/kerberos.cnf" if (gbl_do_col_info) { col_add_str(actx->pinfo->cinfo, COL_INFO, val_to_str(msgtype, krb5_msg_types, @@ -2679,7 +2678,7 @@ static const value_string kerberos_PADATA_TYPE_vals[] = { static int dissect_kerberos_PADATA_TYPE(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 116 "../../asn1/kerberos/kerberos.cnf" +#line 119 "../../asn1/kerberos/kerberos.cnf" actx->value_ptr = wmem_alloc(wmem_packet_scope(), sizeof(guint32)); @@ -2701,7 +2700,7 @@ dissect_kerberos_PADATA_TYPE(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o static int dissect_kerberos_T_padata_value(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 129 "../../asn1/kerberos/kerberos.cnf" +#line 132 "../../asn1/kerberos/kerberos.cnf" proto_tree *sub_tree=tree; guint32 PA_DATA_type = 0; @@ -2832,7 +2831,7 @@ dissect_kerberos_SEQUENCE_OF_ENCTYPE(gboolean implicit_tag _U_, tvbuff_t *tvb _U static int dissect_kerberos_T_encryptedAuthorizationData_cipher(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 247 "../../asn1/kerberos/kerberos.cnf" +#line 250 "../../asn1/kerberos/kerberos.cnf" /**/#ifdef HAVE_KERBEROS offset=dissect_ber_octet_string_wcb(FALSE, actx, tree, tvb, offset, hf_index, dissect_krb5_decrypt_authenticator_data); /**/#else @@ -2895,7 +2894,7 @@ static const ber_sequence_t KDC_REQ_BODY_sequence[] = { static int dissect_kerberos_KDC_REQ_BODY(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 377 "../../asn1/kerberos/kerberos.cnf" +#line 382 "../../asn1/kerberos/kerberos.cnf" conversation_t *conversation; /* @@ -2956,7 +2955,7 @@ dissect_kerberos_AS_REQ(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset static int dissect_kerberos_T_encryptedKDCREPData_cipher(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 255 "../../asn1/kerberos/kerberos.cnf" +#line 258 "../../asn1/kerberos/kerberos.cnf" /**/#ifdef HAVE_KERBEROS offset=dissect_ber_octet_string_wcb(FALSE, actx, tree, tvb, offset, hf_index, dissect_krb5_decrypt_KDC_REP_data); /**/#else @@ -3086,7 +3085,7 @@ dissect_kerberos_AP_REQ(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset static int dissect_kerberos_T_encryptedAPREPData_cipher(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 271 "../../asn1/kerberos/kerberos.cnf" +#line 274 "../../asn1/kerberos/kerberos.cnf" /**/#ifdef HAVE_KERBEROS offset=dissect_ber_octet_string_wcb(FALSE, actx, tree, tvb, offset, hf_index, dissect_krb5_decrypt_AP_REP_data); /**/#else @@ -3147,7 +3146,7 @@ dissect_kerberos_AP_REP(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset static int dissect_kerberos_T_kRB_SAFE_BODY_user_data(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 400 "../../asn1/kerberos/kerberos.cnf" +#line 405 "../../asn1/kerberos/kerberos.cnf" tvbuff_t *new_tvb; offset=dissect_ber_octet_string(FALSE, actx, tree, tvb, offset, hf_index, &new_tvb); if (new_tvb) { @@ -3209,7 +3208,7 @@ dissect_kerberos_KRB_SAFE(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offs static int dissect_kerberos_T_encryptedKrbPrivData_cipher(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 279 "../../asn1/kerberos/kerberos.cnf" +#line 282 "../../asn1/kerberos/kerberos.cnf" /**/#ifdef HAVE_KERBEROS offset=dissect_ber_octet_string_wcb(FALSE, actx, tree, tvb, offset, hf_index, dissect_krb5_decrypt_PRIV_data); /**/#else @@ -3270,7 +3269,7 @@ dissect_kerberos_KRB_PRIV(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offs static int dissect_kerberos_T_encryptedKrbCredData_cipher(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 287 "../../asn1/kerberos/kerberos.cnf" +#line 290 "../../asn1/kerberos/kerberos.cnf" /**/#ifdef HAVE_KERBEROS offset=dissect_ber_octet_string_wcb(FALSE, actx, tree, tvb, offset, hf_index, dissect_krb5_decrypt_CRED_data); /**/#else @@ -3469,7 +3468,7 @@ dissect_kerberos_EncAPRepPart(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int static int dissect_kerberos_T_encKrbPrivPart_user_data(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 407 "../../asn1/kerberos/kerberos.cnf" +#line 412 "../../asn1/kerberos/kerberos.cnf" tvbuff_t *new_tvb; offset=dissect_ber_octet_string(FALSE, actx, tree, tvb, offset, hf_index, &new_tvb); if (new_tvb) { @@ -3477,7 +3476,6 @@ dissect_kerberos_T_encKrbPrivPart_user_data(gboolean implicit_tag _U_, tvbuff_t } - return offset; } @@ -3653,14 +3651,14 @@ static const value_string kerberos_ERROR_CODE_vals[] = { static int dissect_kerberos_ERROR_CODE(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 78 "../../asn1/kerberos/kerberos.cnf" +#line 81 "../../asn1/kerberos/kerberos.cnf" offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, &krb5_errorcode); -#line 81 "../../asn1/kerberos/kerberos.cnf" +#line 84 "../../asn1/kerberos/kerberos.cnf" if(krb5_errorcode) { col_add_fstr(actx->pinfo->cinfo, COL_INFO, "KRB Error: %s", @@ -3677,7 +3675,7 @@ dissect_kerberos_ERROR_CODE(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of static int dissect_kerberos_T_e_data(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 91 "../../asn1/kerberos/kerberos.cnf" +#line 94 "../../asn1/kerberos/kerberos.cnf" switch(krb5_errorcode){ case KRB5_ET_KRB5KDC_ERR_BADOPTION: case KRB5_ET_KRB5KDC_ERR_CLIENT_REVOKED: @@ -3777,7 +3775,7 @@ dissect_kerberos_Applications(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int static int dissect_kerberos_T_pA_ENC_TIMESTAMP_cipher(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 263 "../../asn1/kerberos/kerberos.cnf" +#line 266 "../../asn1/kerberos/kerberos.cnf" /**/#ifdef HAVE_KERBEROS offset=dissect_ber_octet_string_wcb(FALSE, actx, tree, tvb, offset, hf_index, dissect_krb5_decrypt_PA_ENC_TIMESTAMP); /**/#else @@ -4330,8 +4328,8 @@ void proto_register_kerberos(void) { FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_kerberos_addr_type, - { "addr-type", "kerberos.addr_type_element", - FT_NONE, BASE_NONE, NULL, 0, + { "addr-type", "kerberos.addr_type", + FT_UINT32, BASE_DEC, VALS(krb5_address_types), 0, NULL, HFILL }}, { &hf_kerberos_address, { "address", "kerberos.address", |