Add fix for Debian bug #580272
authorDr. Werner Fink <werner@suse.de>
Mon, 17 May 2010 09:44:34 +0000 (09:44 +0000)
committerDr. Werner Fink <werner@suse.de>
Mon, 17 May 2010 09:44:34 +0000 (09:44 +0000)
git-svn-id: svn://svn.sv.gnu.org/sysvinit/sysvinit/trunk@90 456724a4-4300-0410-8514-c89748c515a2

doc/Changelog
src/init.c

index 9b1ed59f1ddc3326c39ae363787261b8b3e7bed1..0687e096bde96417ffbee39ce6a77f94856a4021 100644 (file)
@@ -7,6 +7,10 @@ sysvinit (2.89dsf) UNRELEASED; urgency=low
   * Include limits.h in killall.c to enforce definition of PATH_MAX
   * Fix sysvinit bug #29758 Linker invocation should not contain
     headers. Change based on patch from Elias Pipping.
+  * Add fix for Debian bug #580272: use return value 1 of
+    is_selinux_enabled() to determine if SELinux is enabled,
+    otherwise initialize SELinux and load the policy. Patch from
+    Petter Reinholdtsen.
 
   [ Petter Reinholdtsen ]
   * Next release will be 2.89dsf.
index 3d7de768a7d4b7f96f76588d7e8185c46b9ac8d5..7d3827c8eb63daffa5595307412f80b6eb60b3a5 100644 (file)
 
 #ifdef WITH_SELINUX
 #  include <selinux/selinux.h>
-#  include <sys/mount.h>
-#  ifndef MNT_DETACH /* present in glibc 2.10, missing in 2.7 */
-#    define MNT_DETACH 2
-#  endif
 #endif
 
 #ifdef __i386__
@@ -2872,11 +2868,9 @@ int main(int argc, char **argv)
 
 #ifdef WITH_SELINUX
        if (getenv("SELINUX_INIT") == NULL) {
-         const int rc = mount("proc", "/proc", "proc", 0, 0);
-         if (is_selinux_enabled() > 0) {
-           putenv("SELINUX_INIT=YES");
-           if (rc == 0) umount2("/proc", MNT_DETACH);
+         if (is_selinux_enabled() != 1) {
            if (selinux_init_load_policy(&enforce) == 0) {
+             putenv("SELINUX_INIT=YES");
              execv(myname, argv);
            } else {
              if (enforce > 0) {
@@ -2887,7 +2881,6 @@ int main(int argc, char **argv)
              }
            }
          }
-         if (rc == 0) umount2("/proc", MNT_DETACH);
        }
 #endif  
        /* Start booting. */