diff options
author | Ezra Peisach <epeisach@mit.edu> | 2000-08-07 15:22:18 +0000 |
---|---|---|
committer | Ezra Peisach <epeisach@mit.edu> | 2000-08-07 15:22:18 +0000 |
commit | a149cbb52b0d7118f5e5c9c4113113e7f880d87d (patch) | |
tree | 3c3d0328d54878e2b8290f1d0069e8befac55802 /src/lib/krb5/asn.1/asn1_k_decode.c | |
parent | 41fd8c0ff0c1626b7ee2550f6cc6a35feb03690e (diff) | |
download | krb5-a149cbb52b0d7118f5e5c9c4113113e7f880d87d.zip krb5-a149cbb52b0d7118f5e5c9c4113113e7f880d87d.tar.gz krb5-a149cbb52b0d7118f5e5c9c4113113e7f880d87d.tar.bz2 |
* asn1_k_decode.c (asn1_decode_last_req_entry): Decode the lr_type
as an int32. Handle backwards compatibility if KRB5_GENEROUS_LR_TYPE
is defined.
* krbasn1.h: Define KRB5_GENEROUS_LR_TYPE for compatibility with
one byte negative lr_types which are sent as a positive integer.
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@12608 dc483132-0cff-0310-8789-dd5450dbe970
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, 6 insertions, 1 deletions
diff --git a/src/lib/krb5/asn.1/asn1_k_decode.c b/src/lib/krb5/asn.1/asn1_k_decode.c index 6f72d8e..a0c1ba3 100644 --- a/src/lib/krb5/asn.1/asn1_k_decode.c +++ b/src/lib/krb5/asn.1/asn1_k_decode.c @@ -645,10 +645,15 @@ asn1_error_code asn1_decode_last_req_entry(buf, val) { setup(); { begin_structure(); - get_field(val->lr_type,0,asn1_decode_octet); + get_field(val->lr_type,0,asn1_decode_int32); get_field(val->value,1,asn1_decode_kerberos_time); end_structure(); val->magic = KV5M_LAST_REQ_ENTRY; +#ifdef KRB5_GENEROUS_LR_TYPE + /* If we are only a single byte wide and negative - fill in the + other bits */ + if((val->lr_type & 0xffffff80) == 0x80) val->lr_type |= 0xffffff00; +#endif } cleanup(); } |