diff options
author | Tobias Brunner <tobias@strongswan.org> | 2017-07-06 14:14:06 +0200 |
---|---|---|
committer | Tobias Brunner <tobias@strongswan.org> | 2017-07-27 13:07:23 +0200 |
commit | 6138b8d629dbc1cb47eb9ee8a69c2b22589b0f77 (patch) | |
tree | b644db38f55605c450a917e2cf22170a1c12df27 /src/libcharon | |
parent | a0cde76958e49f9a65b8951ac6c4311c1fed82e1 (diff) | |
download | strongswan-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.c | 1 |
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); |