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>
This commit is contained in:
Simon McVittie 2015-02-19 12:08:59 +00:00
parent 327a52e4eb
commit e3e388a1ef
3 changed files with 14 additions and 6 deletions

View file

@ -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 */
}

View file

@ -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);

View file

@ -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);