bus: Make audit initialization idempotent

The audit module is initialized every time a new BusContext is created,
which is only once in the real dbus-daemon, but can happen several times
in some unit tests.

Signed-off-by: Simon McVittie <smcv@collabora.com>
This commit is contained in:
Simon McVittie 2019-06-29 17:36:36 +01:00
parent e148aa47d3
commit 1b1c5ddd35

View file

@ -54,6 +54,9 @@ bus_audit_init (BusContext *context)
#ifdef HAVE_LIBAUDIT
int i;
if (audit_fd >= 0)
return;
capng_get_caps_process ();
/* Work around a bug in libcap-ng < 0.7.7: it leaks a fd, which isn't
@ -105,7 +108,11 @@ void
bus_audit_shutdown (void)
{
#ifdef HAVE_LIBAUDIT
audit_close (audit_fd);
if (audit_fd >= 0)
{
audit_close (audit_fd);
audit_fd = -1;
}
#endif /* HAVE_LIBAUDIT */
}