dovecot-1.1: master: If login process has -D parameter, make log...
dovecot at dovecot.org
dovecot at dovecot.org
Fri Mar 13 21:12:40 EET 2009
details: http://hg.dovecot.org/dovecot-1.1/rev/a4a696f98a12
changeset: 8195:a4a696f98a12
user: Timo Sirainen <tss at iki.fi>
date: Fri Mar 13 15:11:59 2009 -0400
description:
master: If login process has -D parameter, make login directory writable.
diffstat:
1 file changed, 15 insertions(+), 1 deletion(-)
src/master/master-settings.c | 16 +++++++++++++++-
diffs (33 lines):
diff -r 1a2d28cedbdd -r a4a696f98a12 src/master/master-settings.c
--- a/src/master/master-settings.c Fri Mar 13 14:51:28 2009 -0400
+++ b/src/master/master-settings.c Fri Mar 13 15:11:59 2009 -0400
@@ -904,6 +904,19 @@ static bool settings_verify(struct setti
return TRUE;
}
+static bool login_want_core_dumps(struct settings *set)
+{
+ const char *p;
+
+ p = strstr(set->server->pop3->login_executable, " -D");
+ if (p != NULL && p[3] == '\0')
+ return TRUE;
+ p = strstr(set->server->imap->login_executable, " -D");
+ if (p != NULL && p[3] == '\0')
+ return TRUE;
+ return FALSE;
+}
+
static bool settings_do_fixes(struct settings *set)
{
struct stat st;
@@ -948,7 +961,8 @@ static bool settings_do_fixes(struct set
empty. with external auth we wouldn't want to delete
existing sockets or break the permissions required by the
auth server. */
- if (safe_mkdir(set->login_dir, 0750,
+ mode_t mode = login_want_core_dumps(set) ? 0770 : 0750;
+ if (safe_mkdir(set->login_dir, mode,
master_uid, set->server->login_gid) == 0) {
i_warning("Corrected permissions for login directory "
"%s", set->login_dir);
More information about the dovecot-cvs
mailing list