summaryrefslogtreecommitdiffstats
path: root/src
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
parente9d5ef4aefdc14736c9bba9b7a4834652657098f (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/ChangeLog6
-rw-r--r--src/lib/crypto/crc32/crc.c11
-rw-r--r--src/lib/crypto/crc32/crctest.c1
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) {