pkcs11: Invalid free fixed in DH/ECDH implementation.
This commit is contained in:
@@ -249,6 +249,7 @@ static bool generate_key_pair_ecp(private_pkcs11_dh_t *this,
|
|||||||
CK_ATTRIBUTE pri_attr[] = {
|
CK_ATTRIBUTE pri_attr[] = {
|
||||||
{ CKA_DERIVE, &ck_true, sizeof(ck_true) },
|
{ CKA_DERIVE, &ck_true, sizeof(ck_true) },
|
||||||
};
|
};
|
||||||
|
chunk_t pub_key;
|
||||||
if (!generate_key_pair(this, pub_attr, countof(pub_attr), pri_attr,
|
if (!generate_key_pair(this, pub_attr, countof(pub_attr), pri_attr,
|
||||||
countof(pri_attr), CKA_EC_POINT))
|
countof(pri_attr), CKA_EC_POINT))
|
||||||
{
|
{
|
||||||
@@ -260,7 +261,9 @@ static bool generate_key_pair_ecp(private_pkcs11_dh_t *this,
|
|||||||
chunk_clear(&this->pub_key);
|
chunk_clear(&this->pub_key);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
this->pub_key = chunk_skip(this->pub_key, 1);
|
pub_key = chunk_clone(chunk_skip(this->pub_key, 1));
|
||||||
|
chunk_clear(&this->pub_key);
|
||||||
|
this->pub_key = pub_key;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user