.base_dir = PKG_RUNDIR,
.verbose_proctitle = VERBOSE_PROCTITLE_DEFAULT,
.first_valid_uid = 500,
- .last_valid_uid = 0,
+ .last_valid_uid = SET_UINT_UNLIMITED,
.first_valid_gid = 1,
- .last_valid_gid = 0,
+ .last_valid_gid = SET_UINT_UNLIMITED,
};
static const struct setting_keyvalue auth_default_settings_keyvalue[] = {
{ "auth_mechanisms", "plain" },
if (set->debug)
set->verbose = TRUE;
+ if (set->last_valid_uid == 0) {
+ *error_r = "last_valid_uid must not be 0";
+ return FALSE;
+ }
+ if (set->last_valid_gid == 0) {
+ *error_r = "last_valid_gid must not be 0";
+ return FALSE;
+ }
+
if (set->cache_size > 0 && set->cache_size < 1024) {
/* probably a configuration error.
older versions used megabyte numbers */
.valid_chroot_dirs = ARRAY_INIT,
.first_valid_uid = 500,
- .last_valid_uid = 0,
+ .last_valid_uid = SET_UINT_UNLIMITED,
.first_valid_gid = 1,
- .last_valid_gid = 0,
+ .last_valid_gid = SET_UINT_UNLIMITED,
.mail_plugins = ARRAY_INIT,
.mail_plugin_dir = MODULEDIR,
(void)parse_postmaster_address(set->postmaster_address, pool,
set, &error);
#else
+ if (set->last_valid_uid == 0) {
+ *error_r = "last_valid_uid must not be 0";
+ return FALSE;
+ }
+ if (set->last_valid_gid == 0) {
+ *error_r = "last_valid_gid must not be 0";
+ return FALSE;
+ }
if (array_is_created(&set->mail_plugins) &&
array_not_empty(&set->mail_plugins) &&
faccessat(AT_FDCWD, set->mail_plugin_dir, R_OK | X_OK, AT_EACCESS) < 0) {
.version_ignore = FALSE,
.first_valid_uid = 500,
- .last_valid_uid = 0,
+ .last_valid_uid = SET_UINT_UNLIMITED,
.first_valid_gid = 1,
- .last_valid_gid = 0,
+ .last_valid_gid = SET_UINT_UNLIMITED,
.services = ARRAY_INIT
};
set->base_dir = p_strndup(pool, set->base_dir, len - 1);
}
- if (set->last_valid_uid != 0 &&
- set->first_valid_uid > set->last_valid_uid) {
+ if (set->last_valid_uid == 0) {
+ *error_r = "last_valid_uid must not be 0";
+ return FALSE;
+ }
+ if (set->first_valid_uid > set->last_valid_uid) {
*error_r = "first_valid_uid can't be larger than last_valid_uid";
return FALSE;
}
- if (set->last_valid_gid != 0 &&
- set->first_valid_gid > set->last_valid_gid) {
+ if (set->last_valid_gid == 0) {
+ *error_r = "last_valid_gid must not be 0";
+ return FALSE;
+ }
+ if (set->first_valid_gid > set->last_valid_gid) {
*error_r = "first_valid_gid can't be larger than last_valid_gid";
return FALSE;
}