SELinux: enable dynamic activation/deactivation of NetLabel/SELinux enforcement
authorPaul Moore <paul.moore@hp.com>
Wed, 18 Jul 2007 16:28:45 +0000 (12:28 -0400)
committerJames Morris <jmorris@namei.org>
Thu, 19 Jul 2007 14:21:11 +0000 (10:21 -0400)
commit23bcdc1adebd3cb47d5666f2e9ecada95c0134e4
tree71caf0ac9fa86e4a9cf423d968a2486656c2e196
parent589f1e81bde732dd0b1bc5d01b6bddd4bcb4527b
SELinux: enable dynamic activation/deactivation of NetLabel/SELinux enforcement

Create a new NetLabel KAPI interface, netlbl_enabled(), which reports on the
current runtime status of NetLabel based on the existing configuration.  LSMs
that make use of NetLabel, i.e. SELinux, can use this new function to determine
if they should perform NetLabel access checks.  This patch changes the
NetLabel/SELinux glue code such that SELinux only enforces NetLabel related
access checks when netlbl_enabled() returns true.

At present NetLabel is considered to be enabled when there is at least one
labeled protocol configuration present.  The result is that by default NetLabel
is considered to be disabled, however, as soon as an administrator configured
a CIPSO DOI definition NetLabel is enabled and SELinux starts enforcing
NetLabel related access controls - including unlabeled packet controls.

This patch also tries to consolidate the multiple "#ifdef CONFIG_NETLABEL"
blocks into a single block to ease future review as recommended by Linus.

Signed-off-by: Paul Moore <paul.moore@hp.com>
Signed-off-by: James Morris <jmorris@namei.org>
include/net/netlabel.h
net/netlabel/netlabel_cipso_v4.c
net/netlabel/netlabel_kapi.c
net/netlabel/netlabel_mgmt.c
net/netlabel/netlabel_mgmt.h
security/selinux/netlabel.c