SELinux: validate kernel object classes and permissions
authorChad Sellers <csellers@tresys.com>
Mon, 6 Nov 2006 17:38:18 +0000 (12:38 -0500)
committerJames Morris <jmorris@namei.org>
Tue, 28 Nov 2006 17:04:38 +0000 (12:04 -0500)
commitb94c7e677b9d28bd3f9ba4a70df6bfa7942867ca
treeea116d586f821526513d32fd5e7c2f8fa6d59485
parentbb242497474da317a7169cc939c741ccf2e79e8c
SELinux: validate kernel object classes and permissions

This is a new object class and permission validation scheme that validates
against the defined kernel headers. This scheme allows extra classes
and permissions that do not conflict with the kernel definitions to be
added to the policy. This validation is now done for all policy loads,
not just subsequent loads after the first policy load.

The implementation walks the three structrures containing the defined
object class and permission values and ensures their values are the
same in the policy being loaded. This includes verifying the object
classes themselves, the permissions they contain, and the permissions
they inherit from commons. Classes or permissions that are present in the
kernel but missing from the policy cause a warning (printed to KERN_INFO)
to be printed, but do not stop the policy from loading, emulating current
behavior. Any other inconsistencies cause the load to fail.

Signed-off-by: Chad Sellers <csellers@tresys.com>
Acked-by: Stephen Smalley <sds@tycho.nsa.gov>
Signed-off-by: James Morris <jmorris@namei.org>
security/selinux/ss/services.c