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:
Tobias Brunner
2020-12-03 11:06:23 +01:00
parent 7d2d94f3e1
commit 25ec2d04aa
+5 -4
View File
@@ -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;