ikev1: Prevent deadlock when checking for duplicate IKEv1 SAs
authorTobias Brunner <tobias@strongswan.org>
Wed, 2 Sep 2015 10:14:35 +0000 (12:14 +0200)
committerTobias Brunner <tobias@strongswan.org>
Thu, 29 Oct 2015 14:59:41 +0000 (15:59 +0100)
commit758b1caa0e75b6de011057fbc8c2982303745953
tree1db805541297b0c5949f1f825c03bfaa619bd0cd
parent858148092d1ef755cd40fea0169259e4ad3e9f02
ikev1: Prevent deadlock when checking for duplicate IKEv1 SAs

Previously, the current segment was held while checking for duplicate
SAs, which requires acquiring all segments.  If multiple threads did this
concurrently this resulted in a deadlock as they couldn't acquire the
segments held by the other threads attempting to do the same.  With the
default configuration only one segment is used, which prevents the problem
as only one thread can check in an IKE SA concurrently.

Fixes: a064eaa8a63a ("Handling of initial contact")
src/libcharon/sa/ike_sa_manager.c