changeset 9478:3ebbccdc05e6 HEAD

master: Create base_dir with 0755 permissions, not 0777.
author Timo Sirainen <tss@iki.fi>
date Thu, 19 Nov 2009 17:59:29 -0500
parents 96b5d6d8dd2c
children 3e1ca490dde0
files src/master/master-settings.c
diffstat 1 files changed, 9 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/master/master-settings.c	Thu Nov 12 12:43:13 2009 -0500
+++ b/src/master/master-settings.c	Thu Nov 19 17:59:29 2009 -0500
@@ -975,7 +975,7 @@
 
 	/* 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;
 	}
@@ -984,6 +984,14 @@
 		i_error("stat(%s) failed: %m", 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);
+	}
 
 	/* remove auth worker sockets left by unclean exits */
 	unlink_auth_sockets(set->base_dir, "auth-worker.");