child-delete: Remove unnecessary call to destroy_child_sa()
authorTobias Brunner <tobias@strongswan.org>
Thu, 12 May 2016 10:22:35 +0000 (12:22 +0200)
committerTobias Brunner <tobias@strongswan.org>
Fri, 17 Jun 2016 16:48:01 +0000 (18:48 +0200)
Generally, we will not find the CHILD_SA by searching for it with the
outbound SPI (the initiator of the DELETE sent its inbound SPI) - and if
we found a CHILD_SA it would most likely be the wrong one (one in which
we used the same inbound SPI as the peer used for the one it deletes).

And we don't actually want to destroy the CHILD_SA at this point as we
know we already initiated a DELETE ourselves, which means that task
still has a reference to it and will destroy the CHILD_SA when it
receives the response from the other peer.

src/libcharon/sa/ikev2/tasks/child_delete.c

index 053a5c5..52661f9 100644 (file)
@@ -165,8 +165,6 @@ static void process_payloads(private_child_delete_t *this, message_t *message)
                                                /* we don't send back a delete if we initiated ourself */
                                                if (!this->initiator)
                                                {
-                                                       this->ike_sa->destroy_child_sa(this->ike_sa,
-                                                                                                                  protocol, spi);
                                                        continue;
                                                }
                                                /* fall through */