Mercurial > dovecot > core-2.2
changeset 22120:59626374824b
lib-storage: Fix ACL in parent mailbox potentially hiding its children.
fs_get_existence_info_flag() was only being called with LAYOUT=fs and
Maildir combination, so only it was broken if the parent mailbox wasn't
visible but its children were.
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Tue, 30 May 2017 09:18:14 +0300 |
parents | b851ae883087 |
children | 21f67d3a4a90 |
files | src/lib-storage/list/mailbox-list-fs-iter.c |
diffstat | 1 files changed, 6 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-storage/list/mailbox-list-fs-iter.c Tue May 30 09:15:09 2017 +0300 +++ b/src/lib-storage/list/mailbox-list-fs-iter.c Tue May 30 09:18:14 2017 +0300 @@ -75,8 +75,12 @@ } switch (existence) { case MAILBOX_EXISTENCE_NONE: - *info_flags |= MAILBOX_NONEXISTENT; - break; + /* We already found out that this mailbox exists. So this is + either a race condition or ACL plugin prevented access to + this. In any case treat this as a \NoSelect mailbox so that + we'll recurse into its potential children. This is + especially important if ACL disabled access to the parent + mailbox, but child mailboxes would be accessible. */ case MAILBOX_EXISTENCE_NOSELECT: *info_flags |= MAILBOX_NOSELECT; break;