[PATCH] selinux: enable configuration of max policy version
authorStephen Smalley <sds@tycho.nsa.gov>
Tue, 26 Sep 2006 06:31:58 +0000 (23:31 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Tue, 26 Sep 2006 15:48:52 +0000 (08:48 -0700)
Enable configuration of SELinux maximum supported policy version to support
legacy userland (init) that does not gracefully handle kernels that support
newer policy versions two or more beyond the installed policy, as in FC3
and FC4.

[bunk@stusta.de: improve Kconfig help text]
Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
Acked-by: James Morris <jmorris@namei.org>
Acked-by: Eric Paris <eparis@redhat.com>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
security/selinux/Kconfig
security/selinux/include/security.h

index 814ddc42f1f4636e19daa7f50d57686bc5ea9257..5c64c746b062e282d7758f326aec11fd9f5216d7 100644 (file)
@@ -124,3 +124,40 @@ config SECURITY_SELINUX_ENABLE_SECMARK_DEFAULT
 
          If you are unsure what do do here, select N.
 
+config SECURITY_SELINUX_POLICYDB_VERSION_MAX
+       bool "NSA SELinux maximum supported policy format version"
+       depends on SECURITY_SELINUX
+       default n
+       help
+         This option enables the maximum policy format version supported
+         by SELinux to be set to a particular value.  This value is reported
+         to userspace via /selinux/policyvers and used at policy load time.
+         It can be adjusted downward to support legacy userland (init) that
+         does not correctly handle kernels that support newer policy versions.
+
+         Examples:
+         For the Fedora Core 3 or 4 Linux distributions, enable this option
+         and set the value via the next option. For Fedore Core 5 and later,
+         do not enable this option.
+
+         If you are unsure how to answer this question, answer N.
+
+config SECURITY_SELINUX_POLICYDB_VERSION_MAX_VALUE
+       int "NSA SELinux maximum supported policy format version value"
+       depends on SECURITY_SELINUX_POLICYDB_VERSION_MAX
+       range 15 20
+       default 19
+       help
+         This option sets the value for the maximum policy format version
+         supported by SELinux.
+
+         Examples:
+         For Fedora Core 3, use 18.
+         For Fedora Core 4, use 19.
+
+         If you are unsure how to answer this question, look for the
+         policy format version supported by your policy toolchain, by
+         running 'checkpolicy -V'. Or look at what policy you have
+         installed under /etc/selinux/$SELINUXTYPE/policy, where
+         SELINUXTYPE is defined in your /etc/selinux/config.
+
index 911954a692fac20e8f00cce1ae8741ed7aaa1b96..aa21ca1721af3f132947abd2c43de6e2416c29cc 100644 (file)
 
 /* Range of policy versions we understand*/
 #define POLICYDB_VERSION_MIN   POLICYDB_VERSION_BASE
-#define POLICYDB_VERSION_MAX   POLICYDB_VERSION_AVTAB
+#ifdef CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX
+#define POLICYDB_VERSION_MAX   CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX_VALUE
+#else
+#define POLICYDB_VERSION_MAX   POLICYDB_VERSION_AVTAB
+#endif
 
 extern int selinux_enabled;
 extern int selinux_mls_enabled;