Commit 7c73faed authored by Chris Wright's avatar Chris Wright Committed by Linus Torvalds

[PATCH] lsm: remove net related includes from security.h

With this we're back to the times when changing skbuff.h only triggers
rebuild of _net_ related stuff 8)

This uncovered a bug in rmap.h, that was not including mm.h to get the
definition of struct vm_area_struct, working by luck.
Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@conectiva.com.br>
Signed-off-by: default avatarChris Wright <chrisw@osdl.org>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 6f62d840
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include <linux/config.h> #include <linux/config.h>
#include <linux/list.h> #include <linux/list.h>
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/mm.h>
#include <linux/spinlock.h> #include <linux/spinlock.h>
/* /*
......
...@@ -30,8 +30,6 @@ ...@@ -30,8 +30,6 @@
#include <linux/shm.h> #include <linux/shm.h>
#include <linux/msg.h> #include <linux/msg.h>
#include <linux/sched.h> #include <linux/sched.h>
#include <linux/skbuff.h>
#include <linux/netlink.h>
struct ctl_table; struct ctl_table;
...@@ -55,18 +53,14 @@ extern void cap_task_reparent_to_init (struct task_struct *p); ...@@ -55,18 +53,14 @@ extern void cap_task_reparent_to_init (struct task_struct *p);
extern int cap_syslog (int type); extern int cap_syslog (int type);
extern int cap_vm_enough_memory (long pages); extern int cap_vm_enough_memory (long pages);
static inline int cap_netlink_send (struct sock *sk, struct sk_buff *skb) struct msghdr;
{ struct sk_buff;
NETLINK_CB (skb).eff_cap = current->cap_effective; struct sock;
return 0; struct sockaddr;
} struct socket;
static inline int cap_netlink_recv (struct sk_buff *skb) extern int cap_netlink_send(struct sock *sk, struct sk_buff *skb);
{ extern int cap_netlink_recv(struct sk_buff *skb);
if (!cap_raised (NETLINK_CB (skb).eff_cap, CAP_NET_ADMIN))
return -EPERM;
return 0;
}
/* /*
* Values used in the task_security_ops calls * Values used in the task_security_ops calls
...@@ -2518,11 +2512,6 @@ static inline int security_setprocattr(struct task_struct *p, char *name, void * ...@@ -2518,11 +2512,6 @@ static inline int security_setprocattr(struct task_struct *p, char *name, void *
return -EINVAL; return -EINVAL;
} }
/*
* The netlink capability defaults need to be used inline by default
* (rather than hooking into the capability module) to reduce overhead
* in the networking code.
*/
static inline int security_netlink_send (struct sock *sk, struct sk_buff *skb) static inline int security_netlink_send (struct sock *sk, struct sk_buff *skb)
{ {
return cap_netlink_send (sk, skb); return cap_netlink_send (sk, skb);
......
...@@ -24,6 +24,23 @@ ...@@ -24,6 +24,23 @@
#include <linux/xattr.h> #include <linux/xattr.h>
#include <linux/hugetlb.h> #include <linux/hugetlb.h>
int cap_netlink_send(struct sock *sk, struct sk_buff *skb)
{
NETLINK_CB(skb).eff_cap = current->cap_effective;
return 0;
}
EXPORT_SYMBOL(cap_netlink_send);
int cap_netlink_recv(struct sk_buff *skb)
{
if (!cap_raised(NETLINK_CB(skb).eff_cap, CAP_NET_ADMIN))
return -EPERM;
return 0;
}
EXPORT_SYMBOL(cap_netlink_recv);
int cap_capable (struct task_struct *tsk, int cap) int cap_capable (struct task_struct *tsk, int cap)
{ {
/* Derived from include/linux/sched.h:capable. */ /* Derived from include/linux/sched.h:capable. */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment