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