]> git.baikalelectronics.ru Git - kernel.git/commit
netlabel: use domain based selectors when address based selectors are not available
authorPaul Moore <pmoore@redhat.com>
Fri, 2 Aug 2013 18:45:08 +0000 (14:45 -0400)
committerDavid S. Miller <davem@davemloft.net>
Fri, 2 Aug 2013 23:57:01 +0000 (16:57 -0700)
commit523e9ec4322e488e222820f3519b360c5b22a80e
tree2097e9baf7e2af21a6cc80206df4f3c58c8a4840
parentfe10c2c0111fdef79fd8920a6fc98c76c4c27d3a
netlabel: use domain based selectors when address based selectors are not available

NetLabel has the ability to selectively assign network security labels
to outbound traffic based on either the LSM's "domain" (different for
each LSM), the network destination, or a combination of both.  Depending
on the type of traffic, local or forwarded, and the type of traffic
selector, domain or address based, different hooks are used to label the
traffic; the goal being minimal overhead.

Unfortunately, there is a bug such that a system using NetLabel domain
based traffic selectors does not correctly label outbound local traffic
that is not assigned to a socket.  The issue is that in these cases
the associated NetLabel hook only looks at the address based selectors
and not the domain based selectors.  This patch corrects this by
checking both the domain and address based selectors so that the correct
labeling is applied, regardless of the configuration type.

In order to acomplish this fix, this patch also simplifies some of the
NetLabel domainhash structures to use a more common outbound traffic
mapping type: struct netlbl_dommap_def.  This simplifies some of the code
in this patch and paves the way for further simplifications in the
future.

Signed-off-by: Paul Moore <pmoore@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/netlabel/netlabel_cipso_v4.c
net/netlabel/netlabel_domainhash.c
net/netlabel/netlabel_domainhash.h
net/netlabel/netlabel_kapi.c
net/netlabel/netlabel_mgmt.c
net/netlabel/netlabel_unlabeled.c