From 310a099be4d6f2085d05e974a7a18534d21cd215 Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Wed, 28 Oct 2015 18:53:15 +0100 Subject: [PATCH] auth-cfg: Prefer merged rules over existing ones when moving them This is particularly important for single valued rules (e.g. identities). When copying values this is already handled correctly by the enumerator and add(). --- src/libstrongswan/credentials/auth_cfg.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/libstrongswan/credentials/auth_cfg.c b/src/libstrongswan/credentials/auth_cfg.c index 1e93f021a..9988d8021 100644 --- a/src/libstrongswan/credentials/auth_cfg.c +++ b/src/libstrongswan/credentials/auth_cfg.c @@ -951,9 +951,9 @@ static void merge(private_auth_cfg_t *this, private_auth_cfg_t *other, bool copy { entry_t entry; - while (array_remove(other->entries, ARRAY_HEAD, &entry)) - { - array_insert(this->entries, ARRAY_TAIL, &entry); + while (array_remove(other->entries, ARRAY_TAIL, &entry)) + { /* keep order but prefer new values (esp. for single valued ones) */ + array_insert(this->entries, ARRAY_HEAD, &entry); } array_compress(other->entries); }