diff options
author | Tobias Brunner <tobias@strongswan.org> | 2015-11-06 09:18:44 +0100 |
---|---|---|
committer | Tobias Brunner <tobias@strongswan.org> | 2015-11-09 15:18:37 +0100 |
commit | 1d528cfb8d6f0ee411b545ad07ace44876afe2ff (patch) | |
tree | 4735ac684108debc0b1d9331873062dd880ca2f7 /src | |
parent | f7234e5e9f05b17d6d602612d9ee6277ba89e672 (diff) | |
download | strongswan-1d528cfb8d6f0ee411b545ad07ace44876afe2ff.tar.bz2 strongswan-1d528cfb8d6f0ee411b545ad07ace44876afe2ff.tar.xz |
ike-sa-manager: Signal waiting threads after check out/in for uniqueness check
Fixes 758b1caa0e75 ("ikev1: Prevent deadlock when checking for duplicate IKEv1 SAs")
Diffstat (limited to 'src')
-rw-r--r-- | src/libcharon/sa/ike_sa_manager.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/libcharon/sa/ike_sa_manager.c b/src/libcharon/sa/ike_sa_manager.c index 9ebdae7f6..4adf22c15 100644 --- a/src/libcharon/sa/ike_sa_manager.c +++ b/src/libcharon/sa/ike_sa_manager.c @@ -1646,6 +1646,9 @@ METHOD(ike_sa_manager_t, checkin, void, * need for a lookup via get_entry_by... */ lock_single_segment(this, segment); entry->checked_out = FALSE; + /* We already signaled waiting threads above, we have to do that + * again after checking the SA out and back in again. */ + entry->condvar->signal(entry->condvar); } } |