]> git.ipfire.org Git - thirdparty/dbus.git/commitdiff
bus: Make audit initialization idempotent
authorSimon McVittie <smcv@collabora.com>
Sat, 29 Jun 2019 16:36:36 +0000 (17:36 +0100)
committerSimon McVittie <smcv@collabora.com>
Wed, 3 Jul 2019 10:11:23 +0000 (11:11 +0100)
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>
bus/audit.c

index 91f2c5cf65eff82814595a6c5dbb786d9f996ff5..9bfe456a1a319123ac2575b28a0b590a51d1f470 100644 (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 */
 }