]> 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)
committerGitLab <gitlab@git.dovecot.net>
Tue, 30 May 2017 07:00:34 +0000 (10:00 +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 646fc82c89c8c1afb6c4e096dbe51c63ab66ea07..21760b2fa8d209b8ebee7a6f9103c07a0eb86535 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);