ike-rekey: Reset IKE_SA on the bus after destroying new IKE_SA
authorTobias Brunner <tobias@strongswan.org>
Mon, 15 Jun 2015 09:46:33 +0000 (11:46 +0200)
committerTobias Brunner <tobias@strongswan.org>
Mon, 27 Jul 2015 12:44:32 +0000 (14:44 +0200)
commit86d20b0b40066590f5e26d1f9aca21cc0cba97e1
treec84cc22253f6e8da56562075b5fc0aac45268c77
parent5af74bcb8482e432c5abf6a53c3f53ee93af577f
ike-rekey: Reset IKE_SA on the bus after destroying new IKE_SA

The destroy() method sets the IKE_SA on the bus to NULL, we reset it to
the current IKE_SA so any events and log messages that follow happen in
the correct context.

A practical example where this is problematic is a DH group mismatch,
which causes the first CREATE_CHILD_SA exchange to fail.  Because the SA
was not reset previously, the message() hook for the CREATE_CHILD_SA
response, for instance, was triggered outside the context of an IKE_SA,
that is, the ike_sa parameter was NULL, which is definitely not expected
by several plugins.

Fixes #862.
src/libcharon/sa/ikev2/tasks/ike_rekey.c