From: Timo Sirainen Date: Thu, 21 Nov 2013 21:02:33 +0000 (+0200) Subject: lib-storage: Improved EACCES error messages for some stat() calls X-Git-Tag: 2.2.9~34 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c905571984fe8ccdb6f2a266b813f19b0643a66c;p=thirdparty%2Fdovecot%2Fcore.git lib-storage: Improved EACCES error messages for some stat() calls --- diff --git a/src/lib-storage/mailbox-list.c b/src/lib-storage/mailbox-list.c index d225862d1e..aa36e59bf7 100644 --- a/src/lib-storage/mailbox-list.c +++ b/src/lib-storage/mailbox-list.c @@ -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; }