* destest.c (value): Now signed int, since some entries are negative.
authorKen Raeburn <raeburn@mit.edu>
Fri, 22 Jun 2001 03:28:46 +0000 (03:28 +0000)
committerKen Raeburn <raeburn@mit.edu>
Fri, 22 Jun 2001 03:28:46 +0000 (03:28 +0000)
(convert): Do bounds checking on character values used as indices into value
array.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@13477 dc483132-0cff-0310-8789-dd5450dbe970

src/lib/crypto/des/ChangeLog
src/lib/crypto/des/destest.c

index c16658a00512ac48c50bbad190c5406f7830cdd3..01330958dae33992721d328c0546d10ebf3d2d75 100644 (file)
@@ -1,5 +1,10 @@
 2001-06-21  Ken Raeburn  <raeburn@mit.edu>
 
+       * destest.c (value): Now signed int, since some entries are
+       negative.
+       (convert): Do bounds checking on character values used as indices
+       into value array.
+
        * string2key.c (mit_des_string_to_key_int): Now static.
 
 2001-06-21  Ezra Peisach  <epeisach@mit.edu>
index fcddc49d6db8cbae985b07b43d51fb911fb1f59b..0995b08bb1ee1eb79395bb25c5f8affbf928e938 100644 (file)
@@ -67,8 +67,8 @@ krb5_octet zeroblock[8] = {0,0,0,0,0,0,0,0};
 
 int
 main(argc, argv)
-int argc;
-char *argv[];
+    int argc;
+    char *argv[];
 {
     char block1[17], block2[17], block3[17];
 
@@ -127,7 +127,7 @@ char *argv[];
     exit( (error > 256 && error % 256) ? 1 : error);
 }
 
-unsigned int value[128] = {
+int value[128] = {
 -1, -1, -1, -1, -1, -1, -1, -1,
 -1, -1, -1, -1, -1, -1, -1, -1,
 -1, -1, -1, -1, -1, -1, -1, -1,
@@ -148,11 +148,13 @@ unsigned int value[128] = {
 
 void
 convert(text, cblock)
-char *text;
-unsigned char cblock[];
+    char *text;
+    unsigned char cblock[];
 {
     register int i;
     for (i = 0; i < 8; i++) {
+       if (text[i*2] < 0 || text[i*2] >= 128)
+           abort ();
        if (value[(int) text[i*2]] == -1 || value[(int) text[i*2+1]] == -1) {
            printf("Bad value byte %d in %s\n", i, text);
            exit(1);