dovecot-2.0: master: Fail at startup if default_login_user or de...
dovecot at dovecot.org
dovecot at dovecot.org
Fri Jun 3 17:37:33 EEST 2011
details: http://hg.dovecot.org/dovecot-2.0/rev/99da5f4f375d
changeset: 12838:99da5f4f375d
user: Timo Sirainen <tss at iki.fi>
date: Fri Jun 03 17:37:25 2011 +0300
description:
master: Fail at startup if default_login_user or default_internal_user doesn't exist.
diffstat:
src/config/settings-get.pl | 1 +
src/master/master-settings.c | 13 +++++++++++++
2 files changed, 14 insertions(+), 0 deletions(-)
diffs (48 lines):
diff -r d339aeb782ed -r 99da5f4f375d src/config/settings-get.pl
--- a/src/config/settings-get.pl Fri Jun 03 17:22:09 2011 +0300
+++ b/src/config/settings-get.pl Fri Jun 03 17:37:25 2011 +0300
@@ -3,6 +3,7 @@
print '#include "lib.h"'."\n";
print '#include "array.h"'."\n";
+print '#include "ipwd.h"'."\n";
print '#include "var-expand.h"'."\n";
print '#include "file-lock.h"'."\n";
print '#include "fsync-mode.h"'."\n";
diff -r d339aeb782ed -r 99da5f4f375d src/master/master-settings.c
--- a/src/master/master-settings.c Fri Jun 03 17:22:09 2011 +0300
+++ b/src/master/master-settings.c Fri Jun 03 17:37:25 2011 +0300
@@ -6,6 +6,7 @@
#include "istream.h"
#include "network.h"
#include "str.h"
+#include "ipwd.h"
#include "mkdir-parents.h"
#include "safe-mkdir.h"
#include "settings-parser.h"
@@ -407,6 +408,7 @@
struct service_settings *const *services;
const char *const *strings;
ARRAY_TYPE(const_string) all_listeners;
+ struct passwd pw;
unsigned int i, j, count, len, client_limit, process_limit;
unsigned int max_auth_client_processes, max_anvil_client_processes;
@@ -427,6 +429,17 @@
return FALSE;
}
+ if (i_getpwnam(set->default_login_user, &pw) == 0) {
+ *error_r = t_strdup_printf("default_login_user doesn't exist: %s",
+ set->default_login_user);
+ return FALSE;
+ }
+ if (i_getpwnam(set->default_internal_user, &pw) == 0) {
+ *error_r = t_strdup_printf("default_internal_user doesn't exist: %s",
+ set->default_internal_user);
+ return FALSE;
+ }
+
/* check that we have at least one service. the actual service
structure validity is checked later while creating them. */
if (!array_is_created(&set->services) ||
More information about the dovecot-cvs
mailing list