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 | |
| parent | e9d5ef4aefdc14736c9bba9b7a4834652657098f (diff) | |
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')
| -rw-r--r-- | src/lib/crypto/crc32/ChangeLog | 6 | ||||
| -rw-r--r-- | src/lib/crypto/crc32/crc.c | 11 | ||||
| -rw-r--r-- | src/lib/crypto/crc32/crctest.c | 1 |
3 files changed, 14 insertions, 4 deletions
diff --git a/src/lib/crypto/crc32/ChangeLog b/src/lib/crypto/crc32/ChangeLog index 3a2a1eebe..b9e7d9e12 100644 --- a/src/lib/crypto/crc32/ChangeLog +++ b/src/lib/crypto/crc32/ChangeLog @@ -1,3 +1,9 @@ +Tue May 14 19:33:27 1996 Richard Basch <basch@lehman.com> + + * crc.c: ensure the cksum content length is sufficient + + * crctest.c: set the cksum length field. + Sat Mar 30 22:54:12 1996 Theodore Y. Ts'o <tytso@dcl> * Makefile.in (SRCS): Removed crctest.c from the SRCS list, since 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; diff --git a/src/lib/crypto/crc32/crctest.c b/src/lib/crypto/crc32/crctest.c index 58388227e..5f4fbd8c0 100644 --- a/src/lib/crypto/crc32/crctest.c +++ b/src/lib/crypto/crc32/crctest.c @@ -42,6 +42,7 @@ main() int bad = 0; + outck.length = sizeof(ckout); outck.contents = ckout; while (scanf("%s %s", input, expected_crc) == 2) { |
