]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-settings: Call settings_parse_array_stop for seen settings.
authorsergey.kitov <sergey.kitov@open-xchange.com>
Mon, 30 Sep 2024 14:02:44 +0000 (17:02 +0300)
committerAki Tuomi <aki.tuomi@open-xchange.com>
Fri, 17 Jan 2025 08:40:00 +0000 (10:40 +0200)
Not calling settings_parse_array_stop() for seen settings cause
excessive elements in list, when settings are read for second time.

src/lib-settings/settings.c

index 83d8755a414024d203793a0a9adebcd82a71253c..e0119d848bc72bbf0f6453e74abf02d5722616b6 100644 (file)
@@ -749,13 +749,9 @@ settings_mmap_apply_blob(struct settings_apply_ctx *ctx,
                                offset, end_offset, mmap->mmap_size);
                        return -1;
                }
-               int ret;
-               if (!set_apply)
-                       ret = 0;
-               else T_BEGIN {
-                       if (list_clear)
-                               ret = 0;
-                       else {
+               int ret = 0;
+               T_BEGIN {
+                       if (set_apply && !list_clear) {
                                ret = settings_mmap_apply_key(ctx, key_idx,
                                        list_key, value, error_r);
                        }