summaryrefslogtreecommitdiffstats
path: root/src/lib
diff options
context:
space:
mode:
authorEzra Peisach <epeisach@mit.edu>1997-10-28 15:31:15 +0000
committerEzra Peisach <epeisach@mit.edu>1997-10-28 15:31:15 +0000
commit872a97e20ce468cb4ed114a7a823d97625f8f07e (patch)
treee10d7ebc3a0735840da266861e334dba4aa67621 /src/lib
parentf24c597b37cacaa003a536b4453d2cbcb4711a63 (diff)
downloadkrb5-872a97e20ce468cb4ed114a7a823d97625f8f07e.tar.gz
krb5-872a97e20ce468cb4ed114a7a823d97625f8f07e.tar.xz
krb5-872a97e20ce468cb4ed114a7a823d97625f8f07e.zip
* kdb_cpw.c (add_key_pwd): For KRB5_KDB_SALTTYPE_AFS3, the salt
key for afs_mit_string_to_key mut be null terminated. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@10254 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/kdb/ChangeLog5
-rw-r--r--src/lib/kdb/kdb_cpw.c14
2 files changed, 19 insertions, 0 deletions
diff --git a/src/lib/kdb/ChangeLog b/src/lib/kdb/ChangeLog
index 773943219..4923b70bf 100644
--- a/src/lib/kdb/ChangeLog
+++ b/src/lib/kdb/ChangeLog
@@ -1,3 +1,8 @@
+Tue Oct 28 10:18:10 1997 Ezra Peisach <epeisach@mit.edu>
+
+ * kdb_cpw.c (add_key_pwd): For KRB5_KDB_SALTTYPE_AFS3, the salt
+ key for afs_mit_string_to_key mut be null terminated.
+
Mon Oct 13 10:18:19 1997 Ezra Peisach <epeisach@mit.edu>
* t_kdb.c (do_testing): Add krb5_free_context.
diff --git a/src/lib/kdb/kdb_cpw.c b/src/lib/kdb/kdb_cpw.c
index 87caafc23..ec7419e1c 100644
--- a/src/lib/kdb/kdb_cpw.c
+++ b/src/lib/kdb/kdb_cpw.c
@@ -392,6 +392,7 @@ add_key_pwd(context, master_eblock, ks_tuple, ks_tuple_count, passwd,
key_salt.data.data = 0;
break;
case KRB5_KDB_SALTTYPE_AFS3: {
+#if 0
krb5_data * saltdata;
if (retval = krb5_copy_data(context, krb5_princ_realm(context,
db_entry->princ), &saltdata))
@@ -400,6 +401,19 @@ add_key_pwd(context, master_eblock, ks_tuple, ks_tuple_count, passwd,
key_salt.data = *saltdata;
key_salt.data.length = -1; /*length actually used below...*/
krb5_xfree(saltdata);
+#else
+ /* Why do we do this? Well, the afs_mit_string_to_key needs to
+ use strlen, and the realm is not NULL terminated.... */
+ int slen = (*krb5_princ_realm(context,db_entry->princ)).length;
+ if(!(key_salt.data.data = (char *) malloc(slen+1)))
+ return ENOMEM;
+ key_salt.data.data[slen] = 0;
+ memcpy((char *)key_salt.data.data,
+ (char *)(*krb5_princ_realm(context,db_entry->princ)).data,
+ slen);
+ key_salt.data.length = -1; /*length actually used below...*/
+#endif
+
}
break;
default: