diff options
Diffstat (limited to 'src/lib/krb5/asn.1/asn1_k_decode.c')
-rw-r--r-- | src/lib/krb5/asn.1/asn1_k_decode.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/lib/krb5/asn.1/asn1_k_decode.c b/src/lib/krb5/asn.1/asn1_k_decode.c index 30b48e8..a232ffc 100644 --- a/src/lib/krb5/asn.1/asn1_k_decode.c +++ b/src/lib/krb5/asn.1/asn1_k_decode.c @@ -1687,8 +1687,11 @@ asn1_error_code asn1_decode_ad_kdcissued val->elements = NULL; {begin_structure(); get_field(val->ad_checksum, 0, asn1_decode_checksum); - opt_field(val->i_principal, 1, asn1_decode_realm, 0); - opt_field(val->i_principal, 2, asn1_decode_principal_name, 0); + if (tagnum == 1) { + alloc_principal(val->i_principal); + opt_field(val->i_principal, 1, asn1_decode_realm, 0); + opt_field(val->i_principal, 2, asn1_decode_principal_name, 0); + } get_field(val->elements, 3, asn1_decode_authorization_data); end_structure(); } |