aboutsummaryrefslogtreecommitdiffstats
path: root/src/libcharon
diff options
context:
space:
mode:
authorTobias Brunner <tobias@strongswan.org>2017-07-06 14:14:06 +0200
committerTobias Brunner <tobias@strongswan.org>2017-07-27 13:07:23 +0200
commit6138b8d629dbc1cb47eb9ee8a69c2b22589b0f77 (patch)
treeb644db38f55605c450a917e2cf22170a1c12df27 /src/libcharon
parenta0cde76958e49f9a65b8951ac6c4311c1fed82e1 (diff)
downloadstrongswan-6138b8d629dbc1cb47eb9ee8a69c2b22589b0f77.tar.bz2
strongswan-6138b8d629dbc1cb47eb9ee8a69c2b22589b0f77.tar.xz
farp: Only remove one tracked entry
Multiple CHILD_SAs sharing the same traffic selectors (e.g. during make-before-break reauthentication) also have the same reqid assigned. If all matching entries are removed we could end up without entry even though an SA exists that still uses these traffic selectors. Fixes #2373.
Diffstat (limited to 'src/libcharon')
-rw-r--r--src/libcharon/plugins/farp/farp_listener.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/libcharon/plugins/farp/farp_listener.c b/src/libcharon/plugins/farp/farp_listener.c
index e19fc5972..28ced546e 100644
--- a/src/libcharon/plugins/farp/farp_listener.c
+++ b/src/libcharon/plugins/farp/farp_listener.c
@@ -101,6 +101,7 @@ METHOD(listener_t, child_updown, bool,
entry->remote->destroy_offset(entry->remote,
offsetof(traffic_selector_t, destroy));
free(entry);
+ break;
}
}
enumerator->destroy(enumerator);