]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-settings: Ignore duplicate named list filter entries
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Sun, 17 Mar 2024 21:15:21 +0000 (23:15 +0200)
committerAki Tuomi <aki.tuomi@open-xchange.com>
Wed, 12 Feb 2025 10:34:12 +0000 (12:34 +0200)
These can happen when some filters override settings for existing named list
filters.

src/lib-settings/settings-parser.c

index 64d813c1e25ddcef5f63af124f2807fb8c4f549a..b8a6b5acd74f9cf1a163f699a2c6e8b177c23d3d 100644 (file)
@@ -698,6 +698,8 @@ settings_parse(struct setting_parser_context *ctx,
                for (i = 0; i < count; i++) {
                        const char *value = p_strdup(ctx->set_pool,
                                settings_section_unescape(list[i]));
+                       if (array_lsearch(arr, &value, i_strcmp_p) != NULL)
+                               continue; /* ignore duplicates */
                        if ((ctx->flags & SETTINGS_PARSER_FLAG_INSERT_FILTERS) != 0)
                                array_insert(arr, insert_pos++, &value, 1);
                        else