From: Timo Sirainen Date: Mon, 26 Jun 2017 16:19:44 +0000 (+0300) Subject: lib-storage: Fail at startup if root mail directory isn't a directory X-Git-Tag: 2.3.0.rc1~1369 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=27d0b2cd12e4118f494d36df21e575d00033be60;p=thirdparty%2Fdovecot%2Fcore.git lib-storage: Fail at startup if root mail directory isn't a directory --- diff --git a/src/lib-storage/mail-storage.c b/src/lib-storage/mail-storage.c index df89b209f4..b53771875b 100644 --- a/src/lib-storage/mail-storage.c +++ b/src/lib-storage/mail-storage.c @@ -231,11 +231,15 @@ mail_storage_verify_root(const char *root_dir, bool autocreate, if (stat(root_dir, &st) == 0) { /* exists */ - return 1; + if (S_ISDIR(st.st_mode)) + return 1; + *error_r = t_strdup_printf( + "Root mail directory is a file: %s", root_dir); + return -1; } else if (errno == EACCES) { *error_r = mail_error_eacces_msg("stat", root_dir); return -1; - } else if (errno != ENOENT && errno != ENOTDIR) { + } else if (errno != ENOENT) { *error_r = t_strdup_printf("stat(%s) failed: %m", root_dir); return -1; } else if (!autocreate) {