dovecot-2.0: eacces_error_get*(): Mention if euid is parent dire...

dovecot at dovecot.org dovecot at dovecot.org
Mon Mar 1 00:34:45 EET 2010


details:   http://hg.dovecot.org/dovecot-2.0/rev/6a8ee83cbc8c
changeset: 10819:6a8ee83cbc8c
user:      Timo Sirainen <tss at iki.fi>
date:      Mon Mar 01 00:34:43 2010 +0200
description:
eacces_error_get*(): Mention if euid is parent directory's owner.

diffstat:

 src/lib/eacces-error.c |  16 ++++++++++------
 1 files changed, 10 insertions(+), 6 deletions(-)

diffs (32 lines):

diff -r 64f6c458aaff -r 6a8ee83cbc8c src/lib/eacces-error.c
--- a/src/lib/eacces-error.c	Sun Feb 28 21:22:53 2010 +0200
+++ b/src/lib/eacces-error.c	Mon Mar 01 00:34:43 2010 +0200
@@ -158,18 +158,22 @@
 			str_printfa(errmsg, " UNIX perms appear ok, "
 				    "some security policy wrong?");
 	}
-	/* check and warn if another uid has the same name */
-	if (pw_name != NULL && dir_st.st_uid != geteuid()) {
-		pw = getpwuid(dir_st.st_uid);
-		if (pw != NULL && strcmp(pw->pw_name, pw_name) == 0) {
-			str_printfa(errmsg, ", dir uid=%s(%s)",
+	if (dir_st.st_uid != geteuid()) {
+		if (pw_name != NULL &&
+		    (pw = getpwuid(dir_st.st_uid)) != NULL &&
+		    strcmp(pw->pw_name, pw_name) == 0) {
+			str_printfa(errmsg, ", conflicting dir uid=%s(%s)",
 				    dec2str(dir_st.st_uid), pw_name);
+		} else {
+			str_append(errmsg, ", euid is not dir owner");
 		}
+	} else {
+		str_append(errmsg, ", euid is dir owner");
 	}
 	if (gr_name != NULL && dir_st.st_gid != getegid()) {
 		group = getgrgid(dir_st.st_gid);
 		if (group != NULL && strcmp(group->gr_name, gr_name) == 0) {
-			str_printfa(errmsg, ", dir gid=%s(%s)",
+			str_printfa(errmsg, ", conflicting dir gid=%s(%s)",
 				    dec2str(dir_st.st_gid), gr_name);
 		}
 	}


More information about the dovecot-cvs mailing list