From: Timo Sirainen Date: Mon, 8 Feb 2016 10:20:34 +0000 (+0200) Subject: lib-master: Fail if syslog_facility's value is unknown. X-Git-Tag: 2.2.22.rc1~201 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2eed51b45a58562cc89d49c5f572f47d83390f23;p=thirdparty%2Fdovecot%2Fcore.git lib-master: Fail if syslog_facility's value is unknown. --- diff --git a/src/lib-master/master-service-settings.c b/src/lib-master/master-service-settings.c index ed4fd12030..817609a7c1 100644 --- a/src/lib-master/master-service-settings.c +++ b/src/lib-master/master-service-settings.c @@ -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 = { /* */ 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; } /* */