From: Timo Sirainen Date: Tue, 30 May 2017 06:36:49 +0000 (+0300) Subject: lib-storage: Fix LAYOUT=fs potentially not ignoring ACLs when requested X-Git-Tag: 2.3.0.rc1~1545 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6263d367e80995c03d4bfdc5ec12b81640d55efe;p=thirdparty%2Fdovecot%2Fcore.git lib-storage: Fix LAYOUT=fs potentially not ignoring ACLs when requested 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. --- diff --git a/src/lib-storage/list/mailbox-list-fs-iter.c b/src/lib-storage/list/mailbox-list-fs-iter.c index 646fc82c89..21760b2fa8 100644 --- a/src/lib-storage/list/mailbox-list-fs-iter.c +++ b/src/lib-storage/list/mailbox-list-fs-iter.c @@ -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);