summaryrefslogtreecommitdiffstats
path: root/src/lib/krb5
diff options
context:
space:
mode:
authorTom Yu <tlyu@mit.edu>1998-12-04 03:16:56 +0000
committerTom Yu <tlyu@mit.edu>1998-12-04 03:16:56 +0000
commitd8df800c97ae727767b8725faa65b849e4c61cb0 (patch)
treecf0589ee9f0db8c426bb8a4ada8244b6ab7de0d0 /src/lib/krb5
parent462e5b1415c2917596e1730ee2cfc23c7bb18556 (diff)
downloadkrb5-d8df800c97ae727767b8725faa65b849e4c61cb0.tar.gz
krb5-d8df800c97ae727767b8725faa65b849e4c61cb0.tar.xz
krb5-d8df800c97ae727767b8725faa65b849e4c61cb0.zip
* asn1_k_decode.c (asn1_decode_krb5_flags): Fix previous to
properly left-justify bit strings less than 32 bits. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@11057 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/krb5')
-rw-r--r--src/lib/krb5/asn.1/ChangeLog4
-rw-r--r--src/lib/krb5/asn.1/asn1_k_decode.c5
2 files changed, 8 insertions, 1 deletions
diff --git a/src/lib/krb5/asn.1/ChangeLog b/src/lib/krb5/asn.1/ChangeLog
index a3d98ad5f..52e04d26f 100644
--- a/src/lib/krb5/asn.1/ChangeLog
+++ b/src/lib/krb5/asn.1/ChangeLog
@@ -1,5 +1,9 @@
Thu Dec 3 19:41:06 1998 Tom Yu <tlyu@mit.edu>
+
+ * asn1_k_decode.c (asn1_decode_krb5_flags): Fix previous to
+ properly left-justify bit strings less than 32 bits.
+
* asn1_k_decode.c (asn1_decode_krb5_flags): Modify to deal with
BIT STRING values that are not exactly 32 bits. Throw away bits
beyond number 31 in a bit string for now. Deal with masking out
diff --git a/src/lib/krb5/asn.1/asn1_k_decode.c b/src/lib/krb5/asn.1/asn1_k_decode.c
index 226b0443d..090fcc3d9 100644
--- a/src/lib/krb5/asn.1/asn1_k_decode.c
+++ b/src/lib/krb5/asn.1/asn1_k_decode.c
@@ -298,8 +298,11 @@ asn1_error_code asn1_decode_krb5_flags(buf, val)
}
if (length <= 4) {
/* Mask out unused bits, but only if necessary. */
- f &= ~0 << unused;
+ f &= ~(krb5_flags)0 << unused;
}
+ /* left-justify */
+ if (length < 4)
+ f <<= (4 - length) * 8;
*val = f;
return 0;
}