updated to hdb changes

git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@2546 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Assar Westerlund
1997-07-23 05:55:04 +00:00
parent 43c95097bd
commit 9a4fdd8f4a

View File

@@ -216,7 +216,7 @@ change (krb5_context context,
HDB *db; HDB *db;
hdb_entry ent; hdb_entry ent;
krb5_data salt; krb5_data salt;
krb5_keyblock new_keyblock; krb5_keyblock new_keyblock, *old_keyblock;
krb5_unparse_name (context, principal, &c); krb5_unparse_name (context, principal, &c);
@@ -260,21 +260,27 @@ change (krb5_context context,
memset (&new_keyblock, 0, sizeof(new_keyblock)); memset (&new_keyblock, 0, sizeof(new_keyblock));
krb5_string_to_key_data (pwd_data, &salt, &new_keyblock); krb5_string_to_key_data (pwd_data, &salt, &new_keyblock);
krb5_data_free (&salt); krb5_data_free (&salt);
if (new_keyblock.keytype == ent.keyblock.keytype old_keyblock = &ent.keys.val[0].key;
&& new_keyblock.keyvalue.length == ent.keyblock.keyvalue.length
if (new_keyblock.keytype == old_keyblock->keytype
&& new_keyblock.keyvalue.length == old_keyblock->keyvalue.length
&& memcmp (new_keyblock.keyvalue.data, && memcmp (new_keyblock.keyvalue.data,
ent.keyblock.keyvalue.data, old_keyblock->keyvalue.data,
new_keyblock.keyvalue.length) == 0) { new_keyblock.keyvalue.length) == 0) {
ret = 0; ret = 0;
} else { } else {
memset (&ent.keyblock, 0, sizeof(ent.keyblock)); Event *e;
ent.keyblock.keytype = new_keyblock.keytype;
krb5_data_copy (&ent.keyblock.keyvalue, memset (old_keyblock, 0, sizeof(*old_keyblock));
old_keyblock->keytype = new_keyblock.keytype;
krb5_data_copy (&old_keyblock->keyvalue,
new_keyblock.keyvalue.data, new_keyblock.keyvalue.data,
new_keyblock.keyvalue.length); new_keyblock.keyvalue.length);
ent.kvno++; ent.kvno++;
ent.last_change = time(NULL); e = malloc(sizeof(*e));
krb5_copy_principal (context, principal, &ent.changed_by); e->time = time(NULL);
krb5_copy_principal (context, principal, &e->principal);
ent.modified_by = e;
ret = db->store (context, db, &ent); ret = db->store (context, db, &ent);
} }
memset (&new_keyblock, 0, sizeof(new_keyblock)); memset (&new_keyblock, 0, sizeof(new_keyblock));