changeset 16616:d95ca476098c

director: Don't allow director_user_expire to be less than 10 seconds.
author Timo Sirainen <tss@iki.fi>
date Mon, 29 Jul 2013 22:06:13 +0300
parents 50117c22151e
children 0e0eb964685a
files src/director/director-settings.c
diffstat 1 files changed, 19 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/director/director-settings.c	Wed Jul 17 10:23:21 2013 +0300
+++ b/src/director/director-settings.c	Mon Jul 29 22:06:13 2013 +0300
@@ -7,6 +7,8 @@
 #include "director-settings.h"
 
 /* <settings checks> */
+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 @@
 	.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
 };
+
+/* <settings checks> */
+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;
+}
+/* </settings checks> */