From: Evgeny Vereshchagin Date: Wed, 14 Oct 2015 16:30:35 +0000 (+0000) Subject: core: execute: validate syslog level and facility X-Git-Tag: v228~203^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e0d6e0fa55054b7eacf58c511abff710fef5712f;p=thirdparty%2Fsystemd.git core: execute: validate syslog level and facility --- diff --git a/src/core/dbus-execute.c b/src/core/dbus-execute.c index b87192a9aeb..8b1f830476d 100644 --- a/src/core/dbus-execute.c +++ b/src/core/dbus-execute.c @@ -888,6 +888,9 @@ int bus_exec_context_set_transient_property( if (r < 0) return r; + if (!log_level_is_valid(level)) + return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Log level value out of range"); + if (mode != UNIT_CHECK) { c->syslog_priority = (c->syslog_priority & LOG_FACMASK) | level; unit_write_drop_in_private_format(u, mode, name, "SyslogLevel=%i\n", level); @@ -901,6 +904,9 @@ int bus_exec_context_set_transient_property( if (r < 0) return r; + if (!log_facility_unshifted_is_valid(facility)) + return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Log facility value out of range"); + if (mode != UNIT_CHECK) { c->syslog_priority = (facility << 3) | LOG_PRI(c->syslog_priority); unit_write_drop_in_private_format(u, mode, name, "SyslogFacility=%i\n", facility);