ike-sa-manager: Avoid memory leak if IKE_SAs get checked in after flush() was called
authorTobias Brunner <tobias@strongswan.org>
Tue, 22 Mar 2016 13:22:19 +0000 (14:22 +0100)
committerTobias Brunner <tobias@strongswan.org>
Wed, 23 Mar 2016 13:02:23 +0000 (14:02 +0100)
commit958c0e8e5c3108a9b58618dae69352ce40424485
treebfe48ccca52e6c3df90cf39fbf1af340e3b98db8
parent90a7a68488e25e59b4b3cbccd189ed66b5804894
ike-sa-manager: Avoid memory leak if IKE_SAs get checked in after flush() was called

A thread might check out a new IKE_SA via checkout_new() or
checkout_by_config() and start initiating it while the daemon is
terminating and the IKE_SA manager is flushed by the main thread.
That SA is not tracked yet so the main thread is not waiting for it and
the other thread is able to check it in and creating an entry after flush()
already terminated causing a memory leak.

Fixes #1348.
src/libcharon/sa/ike_sa_manager.c