From: Timo Sirainen Date: Mon, 29 Jul 2013 19:06:13 +0000 (+0300) Subject: director: Don't allow director_user_expire to be less than 10 seconds. X-Git-Tag: 2.2.5~43 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=935960e45571872e38f730964f8ca1d116a1b532;p=thirdparty%2Fdovecot%2Fcore.git director: Don't allow director_user_expire to be less than 10 seconds. --- diff --git a/src/director/director-settings.c b/src/director/director-settings.c index 17ef351e01..b065bb02ff 100644 --- a/src/director/director-settings.c +++ b/src/director/director-settings.c @@ -7,6 +7,8 @@ #include "director-settings.h" /* */ +static bool director_settings_verify(void *_set, pool_t pool, const char **error_r); + static struct file_listener_settings director_unix_listeners_array[] = { { "login/director", 0, "", "" }, { "director-admin", 0600, "", "" } @@ -93,5 +95,21 @@ const struct setting_parser_info director_setting_parser_info = { .type_offset = (size_t)-1, .struct_size = sizeof(struct director_settings), - .parent_offset = (size_t)-1 + .parent_offset = (size_t)-1, + + .check_func = director_settings_verify }; + +/* */ +static bool +director_settings_verify(void *_set, pool_t pool ATTR_UNUSED, const char **error_r) +{ + struct director_settings *set = _set; + + if (set->director_user_expire < 10) { + *error_r = "director_user_expire is too low"; + return FALSE; + } + return TRUE; +} +/* */