]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-master: Fail if syslog_facility's value is unknown.
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Mon, 8 Feb 2016 10:20:34 +0000 (12:20 +0200)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Mon, 8 Feb 2016 10:20:34 +0000 (12:20 +0200)
src/lib-master/master-service-settings.c

index ed4fd12030a21e2d22ea5c60dc5eb77370bbfdf8..817609a7c110326b8ef531d6cf55d9b100ace266 100644 (file)
@@ -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 @@ const struct setting_parser_info master_service_setting_parser_info = {
 /* <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> */