diff options
| author | Richard Basch <probe@mit.edu> | 1996-05-15 00:58:34 +0000 |
|---|---|---|
| committer | Richard Basch <probe@mit.edu> | 1996-05-15 00:58:34 +0000 |
| commit | a4ea4b3ae7ae82ccf4139306a46ebad43701e924 (patch) | |
| tree | 42f10145c48739f1f949ba229857c12c330bf79d /src/lib/crypto/crc32/crc.c | |
| parent | e9d5ef4aefdc14736c9bba9b7a4834652657098f (diff) | |
| download | krb5-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.c | 11 |
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; |
