child-rekey: Don't migrate child-create task if we already are deleting
If we are already deleting the old/redundant CHILD_SA, we must not migrate the child-create task as that would destroy the new CHILD_SA we already moved to the IKE_SA. Fixes #3644.
This commit is contained in:
@@ -573,14 +573,15 @@ METHOD(child_rekey_t, collide, void,
|
||||
METHOD(task_t, migrate, void,
|
||||
private_child_rekey_t *this, ike_sa_t *ike_sa)
|
||||
{
|
||||
if (this->child_create)
|
||||
{
|
||||
this->child_create->task.migrate(&this->child_create->task, ike_sa);
|
||||
}
|
||||
/* only migrate the currently active task */
|
||||
if (this->child_delete)
|
||||
{
|
||||
this->child_delete->task.migrate(&this->child_delete->task, ike_sa);
|
||||
}
|
||||
else if (this->child_create)
|
||||
{
|
||||
this->child_create->task.migrate(&this->child_create->task, ike_sa);
|
||||
}
|
||||
DESTROY_IF(this->collision);
|
||||
|
||||
this->ike_sa = ike_sa;
|
||||
|
||||
Reference in New Issue
Block a user