X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;ds=sidebyside;f=src%2Fcore%2Fselinux-access.c;h=08ea6efb78c48150dc9486be48fe97fccc6ba0af;hb=6baa7db00812437bbc87e73faa1a11b6cf631958;hp=53e08af395f1dcefcd907ad4d4d29f7321ea178e;hpb=4f4f70361a64957c45a2d8f40bfb04c77b454697;p=elogind.git diff --git a/src/core/selinux-access.c b/src/core/selinux-access.c index 53e08af39..08ea6efb7 100644 --- a/src/core/selinux-access.c +++ b/src/core/selinux-access.c @@ -142,7 +142,7 @@ static int selinux_access_init(sd_bus_error *error) { if (initialized) return 0; - if (!use_selinux()) + if (!mac_selinux_use()) return 0; r = access_init(); @@ -186,7 +186,7 @@ int selinux_generic_access_check( assert(permission); assert(error); - if (!use_selinux()) + if (!mac_selinux_use()) return 0; r = selinux_access_init(error); @@ -250,10 +250,30 @@ finish: return r; } +int selinux_unit_access_check_strv(char **units, + sd_bus_message *message, + Manager *m, + const char *permission, + sd_bus_error *error) { + char **i; + Unit *u; + int r; + + STRV_FOREACH(i, units) { + u = manager_get_unit(m, *i); + if (u) { + r = selinux_unit_access_check(u, message, permission, error); + if (r < 0) + return r; + } + } + + return 0; +} + #else int selinux_generic_access_check( - sd_bus *bus, sd_bus_message *message, const char *path, const char *permission, @@ -265,4 +285,12 @@ int selinux_generic_access_check( void selinux_access_free(void) { } +int selinux_unit_access_check_strv(char **units, + sd_bus_message *message, + Manager *m, + const char *permission, + sd_bus_error *error) { + return 0; +} + #endif