From 2dbc6b6ddfb5cebeae1807316fcb4ad7af36d717 Mon Sep 17 00:00:00 2001 From: Johan Danielsson Date: Mon, 13 Aug 2001 15:12:16 +0000 Subject: [PATCH] fix some problems with previous git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@10490 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/kadm5/set_keys.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/lib/kadm5/set_keys.c b/lib/kadm5/set_keys.c index 1ed6bb5b0..74c176a38 100644 --- a/lib/kadm5/set_keys.c +++ b/lib/kadm5/set_keys.c @@ -183,17 +183,22 @@ make_keys(krb5_context context, krb5_principal principal, const char *password, } strlwr(salt.saltvalue.data); salt.saltvalue.length = strlen(*realm); + salt_set = 1; } } memset(&key, 0, sizeof(key)); for(i = 0; i < num_etypes; i++) { Key *k; - for(k = keys; k < keys + num_keyts; k++) { + for(k = keys; k < keys + num_keys; k++) { if(k->key.keytype == etypes[i] && - k->salt.salttype == salt.salttype && - k->salt.saltvalue.length == salt.saltvalue.length && - memcmp(k->salt.saltvalue.data, salt.saltvalue.data, - salt.saltvalue.length) == 0) + ((k->salt != NULL && + k->salt->type == salt.salttype && + k->salt->salt.length == salt.saltvalue.length && + memcmp(k->salt->salt.data, salt.saltvalue.data, + salt.saltvalue.length) == 0) || + (k->salt == NULL && + salt.salttype == KRB5_PW_SALT && + !salt_set))) goto next_etype; }