X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fcore%2Fdbus.c;h=e23d36fddcd1bb8f3a81b6dddc4d4103bc1fb9e9;hb=387eba008426fbd8d7400eef8e41fda09f7f3cb3;hp=ec1c0d43369dd8daade84de7aab149a4e775bbec;hpb=f44b9efcec4594eb8f843325ee3079b44fb8f24a;p=elogind.git diff --git a/src/core/dbus.c b/src/core/dbus.c index ec1c0d433..e23d36fdd 100644 --- a/src/core/dbus.c +++ b/src/core/dbus.c @@ -776,6 +776,14 @@ static int bus_setup_api(Manager *m, sd_bus *bus) { assert(m); assert(bus); + /* Let's make sure we have enough credential bits so that we can make security and selinux decisions */ + r = sd_bus_negotiate_creds(bus, 1, + SD_BUS_CREDS_PID|SD_BUS_CREDS_UID| + SD_BUS_CREDS_EUID|SD_BUS_CREDS_EFFECTIVE_CAPS| + SD_BUS_CREDS_SELINUX_CONTEXT); + if (r < 0) + log_warning("Failed to enable credential passing, ignoring: %s", strerror(-r)); + r = bus_setup_api_vtables(m, bus); if (r < 0) return r;