diff options
| author | Ezra Peisach <epeisach@mit.edu> | 1997-10-28 15:31:15 +0000 |
|---|---|---|
| committer | Ezra Peisach <epeisach@mit.edu> | 1997-10-28 15:31:15 +0000 |
| commit | 872a97e20ce468cb4ed114a7a823d97625f8f07e (patch) | |
| tree | e10d7ebc3a0735840da266861e334dba4aa67621 /src/lib | |
| parent | f24c597b37cacaa003a536b4453d2cbcb4711a63 (diff) | |
| download | krb5-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/ChangeLog | 5 | ||||
| -rw-r--r-- | src/lib/kdb/kdb_cpw.c | 14 |
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: |
