summaryrefslogtreecommitdiffstats
path: root/src/lib/kdb
diff options
context:
space:
mode:
authorTom Yu <tlyu@mit.edu>2000-02-19 01:49:31 +0000
committerTom Yu <tlyu@mit.edu>2000-02-19 01:49:31 +0000
commitda8cb1d91e1f1cacbb7ff1064dc3902ea059ebaf (patch)
tree7a54a0ee853c6b8d372985d72e4713de800d2692 /src/lib/kdb
parent572c6db849f27628223a7e838c1b1ed490665d96 (diff)
downloadkrb5-da8cb1d91e1f1cacbb7ff1064dc3902ea059ebaf.tar.gz
krb5-da8cb1d91e1f1cacbb7ff1064dc3902ea059ebaf.tar.xz
krb5-da8cb1d91e1f1cacbb7ff1064dc3902ea059ebaf.zip
* kdb_cpw.c (krb5_dbe_crk):
(krb5_dbe_cpw): Fix to actually save old keys. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@12054 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/kdb')
-rw-r--r--src/lib/kdb/ChangeLog5
-rw-r--r--src/lib/kdb/kdb_cpw.c8
2 files changed, 13 insertions, 0 deletions
diff --git a/src/lib/kdb/ChangeLog b/src/lib/kdb/ChangeLog
index b3328a0d86..699e523e8e 100644
--- a/src/lib/kdb/ChangeLog
+++ b/src/lib/kdb/ChangeLog
@@ -1,3 +1,8 @@
+2000-02-18 Tom Yu <tlyu@mit.edu>
+
+ * kdb_cpw.c (krb5_dbe_crk):
+ (krb5_dbe_cpw): Fix to actually save old keys.
+
1999-10-26 Tom Yu <tlyu@mit.edu>
* Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
diff --git a/src/lib/kdb/kdb_cpw.c b/src/lib/kdb/kdb_cpw.c
index 5f1bd15dcf..d5f0f3676c 100644
--- a/src/lib/kdb/kdb_cpw.c
+++ b/src/lib/kdb/kdb_cpw.c
@@ -206,6 +206,7 @@ krb5_dbe_crk(context, master_key, ks_tuple, ks_tuple_count, keepold, db_entry)
krb5_db_entry * db_entry;
{
int key_data_count;
+ int n_new_key_data;
krb5_key_data * key_data;
krb5_error_code retval;
int kvno;
@@ -228,6 +229,7 @@ krb5_dbe_crk(context, master_key, ks_tuple, ks_tuple_count, keepold, db_entry)
db_entry->n_key_data = key_data_count;
db_entry->key_data = key_data;
} else if (keepold) {
+ n_new_key_data = db_entry->n_key_data;
for (i = 0; i < key_data_count; i++) {
retval = krb5_dbe_create_key_data(context, db_entry);
if (retval) {
@@ -235,6 +237,8 @@ krb5_dbe_crk(context, master_key, ks_tuple, ks_tuple_count, keepold, db_entry)
db_entry->key_data);
break;
}
+ db_entry->key_data[i+n_new_key_data] = key_data[i];
+ memset(&key_data[i], 0, sizeof(krb5_key_data));
}
} else {
cleanup_key_data(context, key_data_count, key_data);
@@ -451,6 +455,7 @@ krb5_dbe_cpw(context, master_key, ks_tuple, ks_tuple_count, passwd,
krb5_db_entry * db_entry;
{
int key_data_count;
+ int n_new_key_data;
krb5_key_data * key_data;
krb5_error_code retval;
int old_kvno;
@@ -476,6 +481,7 @@ krb5_dbe_cpw(context, master_key, ks_tuple, ks_tuple_count, passwd,
db_entry->n_key_data = key_data_count;
db_entry->key_data = key_data;
} else if (keepold) {
+ n_new_key_data = db_entry->n_key_data;
for (i = 0; i < key_data_count; i++) {
retval = krb5_dbe_create_key_data(context, db_entry);
if (retval) {
@@ -483,6 +489,8 @@ krb5_dbe_cpw(context, master_key, ks_tuple, ks_tuple_count, passwd,
db_entry->key_data);
break;
}
+ db_entry->key_data[i+n_new_key_data] = key_data[i];
+ memset(&key_data[i], 0, sizeof(krb5_key_data));
}
} else {
cleanup_key_data(context, key_data_count, key_data);