]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-storage: Fix LAYOUT=fs potentially not ignoring ACLs when requested
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Tue, 30 May 2017 06:36:49 +0000 (09:36 +0300)
committerVille Savolainen <ville.savolainen@dovecot.fi>
Fri, 9 Jun 2017 07:25:18 +0000 (10:25 +0300)
fs_get_existence_info_flag() was only being called with LAYOUT=fs and
Maildir combination. This mainly affected that combination when using
mailbox_list_index=yes and trying to list mailboxes with ACL checking
disabled.

src/lib-storage/list/mailbox-list-fs-iter.c

index 15b792339db637bc6e3601853749d625109e9368..51fad9b5854ac4fe276f7fc8e5e452ae0153de69 100644 (file)
@@ -59,12 +59,15 @@ fs_get_existence_info_flag(struct fs_list_iterate_context *ctx,
                           enum mailbox_info_flags *info_flags)
 {
        struct mailbox *box;
+       enum mailbox_flags flags = 0;
        enum mailbox_existence existence;
        bool auto_boxes;
        int ret;
 
+       if ((ctx->ctx.flags & MAILBOX_LIST_ITER_RAW_LIST) != 0)
+               flags |= MAILBOX_FLAG_IGNORE_ACLS;
        auto_boxes = (ctx->ctx.flags & MAILBOX_LIST_ITER_NO_AUTO_BOXES) == 0;
-       box = mailbox_alloc(ctx->ctx.list, vname, 0);
+       box = mailbox_alloc(ctx->ctx.list, vname, flags);
        ret = mailbox_exists(box, auto_boxes, &existence);
        mailbox_free(&box);