child-create: Destroy nonceg in migrate()
Since another nonce gets allocated later (if any was allocated already) this would have resulted in a leaked nonce context ID when used in charon-tkm.
This commit is contained in:
@@ -221,6 +221,7 @@ static status_t get_nonce(message_t *message, chunk_t *nonce)
|
|||||||
*/
|
*/
|
||||||
static bool generate_nonce(private_child_create_t *this)
|
static bool generate_nonce(private_child_create_t *this)
|
||||||
{
|
{
|
||||||
|
this->nonceg = this->keymat->keymat.create_nonce_gen(&this->keymat->keymat);
|
||||||
if (!this->nonceg)
|
if (!this->nonceg)
|
||||||
{
|
{
|
||||||
DBG1(DBG_IKE, "no nonce generator found to create nonce");
|
DBG1(DBG_IKE, "no nonce generator found to create nonce");
|
||||||
@@ -1580,6 +1581,7 @@ METHOD(task_t, migrate, void,
|
|||||||
}
|
}
|
||||||
DESTROY_IF(this->child_sa);
|
DESTROY_IF(this->child_sa);
|
||||||
DESTROY_IF(this->proposal);
|
DESTROY_IF(this->proposal);
|
||||||
|
DESTROY_IF(this->nonceg);
|
||||||
DESTROY_IF(this->dh);
|
DESTROY_IF(this->dh);
|
||||||
this->dh_failed = FALSE;
|
this->dh_failed = FALSE;
|
||||||
if (this->proposals)
|
if (this->proposals)
|
||||||
@@ -1671,7 +1673,6 @@ child_create_t *child_create_create(ike_sa_t *ike_sa,
|
|||||||
.rekey = rekey,
|
.rekey = rekey,
|
||||||
.retry = FALSE,
|
.retry = FALSE,
|
||||||
);
|
);
|
||||||
this->nonceg = this->keymat->keymat.create_nonce_gen(&this->keymat->keymat);
|
|
||||||
|
|
||||||
if (config)
|
if (config)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user