summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon McVittie <simon.mcvittie@collabora.co.uk>2015-02-19 12:08:59 +0000
committerSimon McVittie <simon.mcvittie@collabora.co.uk>2015-08-06 17:12:37 +0100
commite3e388a1ef8859cfb672bd92d955ce90aafb7f7d (patch)
treed2b8ac0ca411a014f487ae1ff256f54b6a63fb2c
parent327a52e4eb90c94dc47579b7890974b65f2f9e53 (diff)
downloaddbus-e3e388a1ef8859cfb672bd92d955ce90aafb7f7d.tar.gz
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 <simon.mcvittie@collabora.co.uk>
-rw-r--r--bus/audit.c14
-rw-r--r--bus/audit.h4
-rw-r--r--bus/bus.c2
3 files changed, 14 insertions, 6 deletions
diff --git a/bus/audit.c b/bus/audit.c
index 97f7d1c4..1aa1e184 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 367d7e7a..e17016f3 100644
--- a/bus/audit.h
+++ b/bus/audit.h
@@ -24,7 +24,9 @@
#include <dbus/dbus.h>
-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 098985a6..056f677f 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);