(AES_string_to_key): Try to not leak memory.

git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@18804 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Love Hörnquist Åstrand
2006-10-22 06:50:02 +00:00
parent 44b1d77058
commit ac32e3d909

View File

@@ -610,24 +610,20 @@ AES_string_to_key(krb5_context context,
if (et == NULL)
return KRB5_PROG_KEYTYPE_NOSUPP;
key->keytype = enctype;
ret = krb5_data_alloc(&key->keyvalue, et->keytype->size);
kd.schedule = NULL;
kd.key->keytype = enctype;
ret = krb5_data_alloc(&kd.key->keyvalue, et->keytype->size);
if (ret) {
krb5_set_error_string(context, "Failed to allocate pkcs5 key");
return ret;
}
ret = krb5_copy_keyblock(context, key, &kd.key);
if (ret) {
krb5_free_keyblock(context, key);
return ret;
}
ret = PKCS5_PBKDF2_HMAC_SHA1(password.data, password.length,
salt.saltvalue.data, salt.saltvalue.length,
iter,
et->keytype->size, kd.key->keyvalue.data);
kd.schedule = NULL;
if (ret != 1) {
free_key_data(context, &kd);
krb5_set_error_string(context, "Error calculating s2k");
return KRB5_PROG_KEYTYPE_NOSUPP;
}