]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-storage: Improved EACCES error messages for some stat() calls
authorTimo Sirainen <tss@iki.fi>
Thu, 21 Nov 2013 21:02:33 +0000 (23:02 +0200)
committerTimo Sirainen <tss@iki.fi>
Thu, 21 Nov 2013 21:02:33 +0000 (23:02 +0200)
src/lib-storage/mailbox-list.c

index d225862d1e169b05c08512895625ddf4c1918ea2..aa36e59bf735e98ce6bf8a94c859a3648742aafb 100644 (file)
@@ -868,7 +868,10 @@ mailbox_list_get_permissions_internal(struct mailbox_list *list,
        if (path == NULL) {
                /* no filesystem support in storage */
        } else if (stat(path, &st) < 0) {
-               if (!ENOTFOUND(errno)) {
+               if (errno == EACCES) {
+                       mailbox_list_set_critical(list, "%s",
+                               mail_error_eacces_msg("stat", path));
+               } else if (!ENOTFOUND(errno)) {
                        mailbox_list_set_critical(list, "stat(%s) failed: %m",
                                                  path);
                } else if (list->mail_set->mail_debug) {
@@ -1052,7 +1055,9 @@ mailbox_list_try_mkdir_root_parent(struct mailbox_list *list,
 
        /* get the first existing parent directory's permissions */
        if (stat_first_parent(expanded, &root_dir, &st) < 0) {
-               *error_r = t_strdup_printf("stat(%s) failed: %m", root_dir);
+               *error_r = errno == EACCES ?
+                       mail_error_eacces_msg("stat", root_dir) :
+                       t_strdup_printf("stat(%s) failed: %m", root_dir);
                return -1;
        }