svn rev #23618: branches/krb5-1-8/src/lib/crypto/krb/yarrow/

tlyu@MIT.EDU tlyu at MIT.EDU
Fri Jan 8 18:43:09 EST 2010


http://src.mit.edu/fisheye/changelog/krb5/?cs=23618
Commit By: tlyu
Log Message:
ticket: 6625
version_fixed: 1.8
status: resolved

pull up r23609 from trunk

 ------------------------------------------------------------------------
 r23609 | epeisach | 2010-01-07 21:12:24 -0500 (Thu, 07 Jan 2010) | 23 lines

 subject: yarrow code does not initialize keyblock enctype and uses unitialized value
 ticket: 6625
 tags: pullup

 The yarrow code uses a keyblock that is partially initialized. This results
 in krb5_k_free_key trying to look up the enctype to call the free handler.

 One of the valgrind reports: (there are several paths)

 ==26701== Conditional jump or move depends on uninitialised value(s)
 ==26701==    at 0x40E9AF0: find_enctype (etypes.h:81)
 ==26701==    by 0x40E9C9E: krb5_k_free_key (key.c:91)
 ==26701==    by 0x40D641A: krb5int_yarrow_cipher_init (ycipher.c:49)
 ==26701==    by 0x40D593A: yarrow_gate_locked (yarrow.c:578)
 ==26701==    by 0x40D5349: krb5int_yarrow_output_Block (yarrow.c:423)
 ==26701==    by 0x40D581B: yarrow_output_locked (yarrow.c:553)
 ==26701==    by 0x40D5667: krb5int_yarrow_output (yarrow.c:513)
 ==26701==    by 0x40EBD2D: krb5_c_random_make_octets (prng.c:112)
 ==26701==    by 0x40D4119: krb5int_old_encrypt (old_aead.c:97)
 ==26701==    by 0x40E9696: krb5_k_encrypt_iov (encrypt_iov.c:42)
 ==26701==    by 0x8049554: main (t_encrypt.c:206)
 ==26701==


Changed Files:
U   branches/krb5-1-8/src/lib/crypto/krb/yarrow/ycipher.c
U   branches/krb5-1-8/src/lib/crypto/krb/yarrow/ycipher.h
Modified: branches/krb5-1-8/src/lib/crypto/krb/yarrow/ycipher.c
===================================================================
--- branches/krb5-1-8/src/lib/crypto/krb/yarrow/ycipher.c	2010-01-08 23:43:05 UTC (rev 23617)
+++ branches/krb5-1-8/src/lib/crypto/krb/yarrow/ycipher.c	2010-01-08 23:43:09 UTC (rev 23618)
@@ -50,6 +50,7 @@
     ctx->key = NULL;
     keyblock.contents = malloc(keylength);
     keyblock.length = keylength;
+    keyblock.enctype = yarrow_enc_type;
     if (keyblock.contents == NULL)
         return (YARROW_NOMEM);
     randombits.data = (char *) key;

Modified: branches/krb5-1-8/src/lib/crypto/krb/yarrow/ycipher.h
===================================================================
--- branches/krb5-1-8/src/lib/crypto/krb/yarrow/ycipher.h	2010-01-08 23:43:05 UTC (rev 23617)
+++ branches/krb5-1-8/src/lib/crypto/krb/yarrow/ycipher.h	2010-01-08 23:43:09 UTC (rev 23618)
@@ -18,6 +18,7 @@
  */
 
 #define yarrow_enc_provider krb5int_enc_aes256
+#define yarrow_enc_type     ENCTYPE_AES256_CTS_HMAC_SHA1_96
 
 #define CIPHER_BLOCK_SIZE 16
 #define CIPHER_KEY_SIZE 32




More information about the cvs-krb5 mailing list