]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
master: Create base_dir with 0755 permissions, not 0777.
authorTimo Sirainen <tss@iki.fi>
Thu, 19 Nov 2009 23:00:08 +0000 (18:00 -0500)
committerTimo Sirainen <tss@iki.fi>
Thu, 19 Nov 2009 23:00:08 +0000 (18:00 -0500)
--HG--
branch : HEAD

src/master/master-settings.c

index 1fbd489d26424e8e14d870eef7b41241eb737691..698dad58ce5a5b7ed48f45cc96e81c0c4f2425d4 100644 (file)
@@ -471,7 +471,7 @@ bool master_settings_do_fixes(const struct master_settings *set)
 
        /* since base dir is under /var/run by default, it may have been
           deleted. */
-       if (mkdir_parents(set->base_dir, 0777) < 0 && errno != EEXIST) {
+       if (mkdir_parents(set->base_dir, 0755) < 0 && errno != EEXIST) {
                i_error("mkdir(%s) failed: %m", set->base_dir);
                return FALSE;
        }
@@ -484,6 +484,14 @@ bool master_settings_do_fixes(const struct master_settings *set)
                i_error("%s is not a directory", set->base_dir);
                return FALSE;
        }
+       if ((st.st_mode & 0777) == 0777) {
+               /* FIXME: backwards compatibility: v1.2 was creating
+                  base_dir with 0777 permissions.. */
+               i_warning("Fixing permissions of %s to be world-readable",
+                         set->base_dir);
+               if (chmod(set->base_dir, 0755) < 0)
+                       i_error("chmod(%s) failed: %m", set->base_dir);
+       }
 
        /* Make sure our permanent state directory exists */
        if (mkdir_parents(PKG_STATEDIR, 0750) < 0 && errno != EEXIST) {