From 6263d367e80995c03d4bfdc5ec12b81640d55efe Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Tue, 30 May 2017 09:36:49 +0300 Subject: [PATCH] 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. --- src/lib-storage/list/mailbox-list-fs-iter.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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);