chiark / gitweb /
selinux: check PID 1 label instead of /selinux mount point to figure out if selinux...
authorLennart Poettering <lennart@poettering.net>
Mon, 25 Jul 2011 19:59:05 +0000 (21:59 +0200)
committerLennart Poettering <lennart@poettering.net>
Mon, 25 Jul 2011 19:59:05 +0000 (21:59 +0200)
src/selinux-setup.c

index f400f41..620c49e 100644 (file)
@@ -38,11 +38,18 @@ int selinux_setup(char *const argv[]) {
 #ifdef HAVE_SELINUX
        int enforce = 0;
        usec_t n;
+       security_context_t con;
 
        /* Already initialized? */
-       if (path_is_mount_point("/sys/fs/selinux") > 0 ||
-           path_is_mount_point("/selinux") > 0)
-               return 0;
+       if (getcon_raw(&con) == 0) {
+               bool initialized;
+
+               initialized = !streq(con, "kernel");
+               freecon(con);
+
+               if (initialized)
+                       return 0;
+       }
 
        /* Before we load the policy we create a flag file to ensure
         * that after the reexec we iterate through /run and /dev to