mirror of
https://github.com/strongswan/strongswan.git
synced 2025-10-04 00:00:14 -04:00
receiver: Properly clean up if hasher or RNG can't be created
This commit is contained in:
parent
380ec66c92
commit
4e2cf58961
@ -656,8 +656,8 @@ METHOD(receiver_t, del_esp_cb, void,
|
||||
METHOD(receiver_t, destroy, void,
|
||||
private_receiver_t *this)
|
||||
{
|
||||
this->rng->destroy(this->rng);
|
||||
this->hasher->destroy(this->hasher);
|
||||
DESTROY_IF(this->rng);
|
||||
DESTROY_IF(this->hasher);
|
||||
this->esp_cb_mutex->destroy(this->esp_cb_mutex);
|
||||
free(this);
|
||||
}
|
||||
@ -717,15 +717,14 @@ receiver_t *receiver_create()
|
||||
if (!this->hasher)
|
||||
{
|
||||
DBG1(DBG_NET, "creating cookie hasher failed, no hashers supported");
|
||||
free(this);
|
||||
destroy(this);
|
||||
return NULL;
|
||||
}
|
||||
this->rng = lib->crypto->create_rng(lib->crypto, RNG_STRONG);
|
||||
if (!this->rng)
|
||||
{
|
||||
DBG1(DBG_NET, "creating cookie RNG failed, no RNG supported");
|
||||
this->hasher->destroy(this->hasher);
|
||||
free(this);
|
||||
destroy(this);
|
||||
return NULL;
|
||||
}
|
||||
if (!this->rng->get_bytes(this->rng, SECRET_LENGTH, this->secret))
|
||||
|
Loading…
x
Reference in New Issue
Block a user