From: Tobias Brunner Date: Thu, 6 Jul 2017 12:14:06 +0000 (+0200) Subject: farp: Only remove one tracked entry X-Git-Tag: 5.6.0dr4~15 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6138b8d629dbc1cb47eb9ee8a69c2b22589b0f77;p=thirdparty%2Fstrongswan.git 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. --- diff --git a/src/libcharon/plugins/farp/farp_listener.c b/src/libcharon/plugins/farp/farp_listener.c index e19fc59721..28ced546ea 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);