changeset 19719:f41c7db50a90

lib-master: Fail if syslog_facility's value is unknown.
author Timo Sirainen <timo.sirainen@dovecot.fi>
date Mon, 08 Feb 2016 12:20:34 +0200
parents 8ad9d8dd0f70
children c34f24c83729
files src/lib-master/master-service-settings.c
diffstat 1 files changed, 8 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-master/master-service-settings.c	Mon Feb 08 12:04:02 2016 +0200
+++ b/src/lib-master/master-service-settings.c	Mon Feb 08 12:20:34 2016 +0200
@@ -6,6 +6,7 @@
 #include "istream.h"
 #include "write-full.h"
 #include "str.h"
+#include "syslog-util.h"
 #include "eacces-error.h"
 #include "env-util.h"
 #include "execv-const.h"
@@ -83,14 +84,20 @@
 /* <settings checks> */
 static bool
 master_service_settings_check(void *_set, pool_t pool ATTR_UNUSED,
-			      const char **error_r ATTR_UNUSED)
+			      const char **error_r)
 {
 	struct master_service_settings *set = _set;
+	int facility;
 
 	if (*set->log_path == '\0') {
 		/* default to syslog logging */
 		set->log_path = "syslog";
 	}
+	if (!syslog_facility_find(set->syslog_facility, &facility)) {
+		*error_r = t_strdup_printf("Unknown syslog_facility: %s",
+					   set->syslog_facility);
+		return FALSE;
+	}
 	return TRUE;
 }
 /* </settings checks> */