summaryrefslogtreecommitdiffstats
path: root/src/lib/crypto/crc32/crc.c
diff options
context:
space:
mode:
authorRichard Basch <probe@mit.edu>1996-05-15 00:58:34 +0000
committerRichard Basch <probe@mit.edu>1996-05-15 00:58:34 +0000
commita4ea4b3ae7ae82ccf4139306a46ebad43701e924 (patch)
tree42f10145c48739f1f949ba229857c12c330bf79d /src/lib/crypto/crc32/crc.c
parente9d5ef4aefdc14736c9bba9b7a4834652657098f (diff)
downloadkrb5-a4ea4b3ae7ae82ccf4139306a46ebad43701e924.tar.gz
krb5-a4ea4b3ae7ae82ccf4139306a46ebad43701e924.tar.xz
krb5-a4ea4b3ae7ae82ccf4139306a46ebad43701e924.zip
crc.c: ensure the cksum length is sufficient
crc-test.c: set the cksum length field git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@8022 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/crypto/crc32/crc.c')
-rw-r--r--src/lib/crypto/crc32/crc.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/lib/crypto/crc32/crc.c b/src/lib/crypto/crc32/crc.c
index 48564b50c..9f055200a 100644
--- a/src/lib/crypto/crc32/crc.c
+++ b/src/lib/crypto/crc32/crc.c
@@ -145,15 +145,15 @@ static u_long const crc_table[256] = {
/* Windows needs to these prototypes for crc32_cksumtable_entry below */
-krb5_error_code
+static krb5_error_code
crc32_sum_func PROTOTYPE((krb5_pointer in, size_t in_length,
krb5_pointer seed, size_t seed_length, krb5_checksum *outcksum));
-krb5_error_code
+static krb5_error_code
crc32_verify_func PROTOTYPE((krb5_checksum FAR *cksum, krb5_pointer in,
size_t in_length, krb5_pointer seed, size_t seed_length));
-krb5_error_code
+static krb5_error_code
crc32_sum_func(in, in_length, seed, seed_length, outcksum)
krb5_pointer in;
size_t in_length;
@@ -166,6 +166,9 @@ krb5_checksum FAR *outcksum;
register int idx;
size_t i;
+ if (outcksum->length < CRC32_CKSUM_LENGTH)
+ return KRB5_BAD_MSIZE;
+
data = (u_char *)in;
for (i = 0; i < in_length; i++) {
idx = (int) (data[i] ^ c);
@@ -183,7 +186,7 @@ krb5_checksum FAR *outcksum;
return 0;
}
-krb5_error_code
+static krb5_error_code
crc32_verify_func(cksum, in, in_length, seed, seed_length)
krb5_checksum FAR *cksum;
krb5_pointer in;