(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:
@@ -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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user