From fbb324fedccfd1cff9fb41b64f715ca77e5d588f Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Thu, 18 Nov 2010 18:56:34 +0000 Subject: [PATCH] mbox: Allow mail_privileged_group locking for INBOXes also in inbox=no namespaces. --- src/lib-storage/index/mbox/mbox-lock.c | 6 +++++- src/lib-storage/index/mbox/mbox-storage.c | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/lib-storage/index/mbox/mbox-lock.c b/src/lib-storage/index/mbox/mbox-lock.c index d65513cf70..ac020ec66e 100644 --- a/src/lib-storage/index/mbox/mbox-lock.c +++ b/src/lib-storage/index/mbox/mbox-lock.c @@ -348,7 +348,11 @@ mbox_dotlock_log_eacces_error(struct mbox_mailbox *mbox, const char *path) errmsg = eacces_error_get_creating("file_dotlock_create", path); dir = strrchr(path, '/'); dir = dir == NULL ? "." : t_strdup_until(path, dir); - if (!mbox->box.inbox_any) { + /* allow privileged locking for + a) user's own INBOX, + b) another user's shared INBOX, and + c) anything called INBOX (in inbox=no namespace) */ + if (!mbox->box.inbox_any && strcmp(mbox->box.name, "INBOX") != 0) { mail_storage_set_critical(&mbox->storage->storage, "%s (not INBOX -> no privileged locking)", errmsg); } else if (!mbox->mbox_privileged_locking) { diff --git a/src/lib-storage/index/mbox/mbox-storage.c b/src/lib-storage/index/mbox/mbox-storage.c index 5713a01b65..00192e206a 100644 --- a/src/lib-storage/index/mbox/mbox-storage.c +++ b/src/lib-storage/index/mbox/mbox-storage.c @@ -403,7 +403,7 @@ static int mbox_mailbox_open_existing(struct mbox_mailbox *mbox) } move_to_memory = want_memory_indexes(mbox->storage, box->path); - if (box->inbox_any) { + if (box->inbox_any || strcmp(box->name, "INBOX") == 0) { /* if INBOX isn't under the root directory, it's probably in /var/mail and we want to allow privileged dotlocking */ rootdir = mailbox_list_get_path(box->list, NULL, -- 2.47.3