]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-storage: Don't do filesystem permission lookups if storage has no mailbox root...
authorTimo Sirainen <tss@iki.fi>
Fri, 22 Nov 2013 21:52:37 +0000 (23:52 +0200)
committerTimo Sirainen <tss@iki.fi>
Fri, 22 Nov 2013 21:52:37 +0000 (23:52 +0200)
src/lib-storage/mailbox-list.c

index aa36e59bf735e98ce6bf8a94c859a3648742aafb..a78043ddf87be0960e611c1a97a647603a8efa55 100644 (file)
@@ -843,6 +843,7 @@ mailbox_list_get_permissions_internal(struct mailbox_list *list,
                                      const char *name,
                                      struct mailbox_permissions *permissions_r)
 {
+       struct mail_storage *storage;
        const char *path, *parent_name, *parent_path, *p;
        struct stat st;
 
@@ -865,7 +866,10 @@ mailbox_list_get_permissions_internal(struct mailbox_list *list,
                (void)mailbox_list_get_root_path(list, MAILBOX_LIST_PATH_TYPE_DIR,
                                                 &path);
        }
-       if (path == NULL) {
+       mailbox_list_get_default_storage(list, &storage);
+
+       if (path == NULL ||
+           (storage->class_flags & MAIL_STORAGE_CLASS_FLAG_NO_ROOT) != 0) {
                /* no filesystem support in storage */
        } else if (stat(path, &st) < 0) {
                if (errno == EACCES) {