chiark / gitweb /
logind: properly clean up user cgroups when they run empty
[elogind.git] / src / shared / label.c
index 3e5ea6746957ed7482bdb5b806aa4670fb2d60a6..9a5f79d7aef91d928d448557fc5a55bb15443006 100644 (file)
@@ -52,7 +52,7 @@ void label_retest_selinux(void) {
 
 #endif
 
-int label_init(const char *prefixes[]) {
+int label_init(const char *prefix) {
         int r = 0;
 
 #ifdef HAVE_SELINUX
@@ -68,9 +68,9 @@ int label_init(const char *prefixes[]) {
         before_mallinfo = mallinfo();
         before_timestamp = now(CLOCK_MONOTONIC);
 
-        if (prefixes) {
+        if (prefix) {
                 struct selinux_opt options[] = {
-                        { .type = SELABEL_OPT_SUBSET, .values = prefixes },
+                        { .type = SELABEL_OPT_SUBSET, .value = prefix },
                 };
 
                 label_hnd = selabel_open(SELABEL_CTX_FILE, options, ELEMENTSOF(options));
@@ -263,15 +263,14 @@ void label_free(const char *label) {
 #endif
 }
 
-int label_mkdir(const char *path, mode_t mode) {
+int label_mkdir(const char *path, mode_t mode, bool apply) {
 
         /* Creates a directory and labels it according to the SELinux policy */
-
 #ifdef HAVE_SELINUX
         int r;
         security_context_t fcon = NULL;
 
-        if (!use_selinux() || !label_hnd)
+        if (!apply || !use_selinux() || !label_hnd)
                 goto skipped;
 
         if (path_is_absolute(path))