From: Simon McVittie Date: Thu, 19 Feb 2015 12:08:59 +0000 (+0000) Subject: audit: use DBUS_SYSTEM_LOG_WARNING if we cannot open the audit fd X-Git-Tag: dbus-1.9.20~5 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e3e388a1ef8859cfb672bd92d955ce90aafb7f7d;p=thirdparty%2Fdbus.git audit: use DBUS_SYSTEM_LOG_WARNING if we cannot open the audit fd Bug: https://bugs.freedesktop.org/show_bug.cgi?id=89225 Signed-off-by: Simon McVittie --- diff --git a/bus/audit.c b/bus/audit.c index 97f7d1c41..1aa1e1845 100644 --- a/bus/audit.c +++ b/bus/audit.c @@ -49,20 +49,26 @@ static int audit_fd = -1; * Open the libaudit fd if appropriate. */ void -bus_audit_init(void) +bus_audit_init (BusContext *context) { #ifdef HAVE_LIBAUDIT audit_fd = audit_open (); if (audit_fd < 0) { + int e = errno; + /* If kernel doesn't support audit, bail out */ - if (errno == EINVAL || errno == EPROTONOSUPPORT || errno == EAFNOSUPPORT) + if (e == EINVAL || e == EPROTONOSUPPORT || e == EAFNOSUPPORT) return; + /* If user bus, bail out */ - if (errno == EPERM && getuid() != 0) + if (e == EPERM && getuid () != 0) return; - _dbus_warn ("Failed opening connection to the audit subsystem"); + + bus_context_log (context, DBUS_SYSTEM_LOG_WARNING, + "Failed to open connection to the audit subsystem: %s", + _dbus_strerror (e)); } #endif /* HAVE_LIBAUDIT */ } diff --git a/bus/audit.h b/bus/audit.h index 367d7e7a3..e17016f3b 100644 --- a/bus/audit.h +++ b/bus/audit.h @@ -24,7 +24,9 @@ #include -void bus_audit_init (void); +#include "bus.h" + +void bus_audit_init (BusContext *context); int bus_audit_get_fd (void); void bus_audit_shutdown (void); diff --git a/bus/bus.c b/bus/bus.c index 098985a64..056f677f2 100644 --- a/bus/bus.c +++ b/bus/bus.c @@ -973,7 +973,7 @@ bus_context_new (const DBusString *config_file, goto failed; } - bus_audit_init (); + bus_audit_init (context); } dbus_server_free_data_slot (&server_data_slot);