[NETLINK]: Encapsulate eff_cap usage within security framework.

This patch encapsulates the usage of eff_cap (in netlink_skb_params) within
the security framework by extending security_netlink_recv to include a required
capability parameter and converting all direct usage of eff_caps outside
of the lsm modules to use the interface.  It also updates the SELinux
implementation of the security_netlink_send and security_netlink_recv
hooks to take advantage of the sid in the netlink_skb_params struct.
This also enables SELinux to perform auditing of netlink capability checks.
Please apply, for 2.6.18 if possible.

Signed-off-by: Darrel Goeddel <[email protected]>
Signed-off-by: Stephen Smalley <[email protected]>
Acked-by:  James Morris <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
This commit is contained in:
Darrel Goeddel 2006-06-27 13:26:11 -07:00 • committed by David S. Miller
commit c7bdb545d2
12 changed files with 35 additions and 34 deletions

View file

@ -675,9 +675,9 @@ static int dummy_netlink_send (struct sock *sk, struct sk_buff *skb)
return 0;
}
static int dummy_netlink_recv (struct sk_buff *skb)
static int dummy_netlink_recv (struct sk_buff *skb, int cap)
{
if (!cap_raised (NETLINK_CB (skb).eff_cap, CAP_NET_ADMIN))
if (!cap_raised (NETLINK_CB (skb).eff_cap, cap))
return -EPERM;
return 0;
}