git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[Bluetooth] Fix reference count when connection lookup fails
[pandora-kernel.git]
/
security
/
commoncap.c
diff --git
a/security/commoncap.c
b/security/commoncap.c
index
04c12f5
..
5a5ef5c
100644
(file)
--- a/
security/commoncap.c
+++ b/
security/commoncap.c
@@
-7,7
+7,7
@@
*
*/
*
*/
-#include <linux/c
onfig
.h>
+#include <linux/c
apability
.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/kernel.h>
@@
-32,9
+32,9
@@
int cap_netlink_send(struct sock *sk, struct sk_buff *skb)
EXPORT_SYMBOL(cap_netlink_send);
EXPORT_SYMBOL(cap_netlink_send);
-int cap_netlink_recv(struct sk_buff *skb)
+int cap_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;
}
return -EPERM;
return 0;
}
@@
-59,8
+59,8
@@
int cap_settime(struct timespec *ts, struct timezone *tz)
int cap_ptrace (struct task_struct *parent, struct task_struct *child)
{
/* Derived from arch/i386/kernel/ptrace.c:sys_ptrace. */
int cap_ptrace (struct task_struct *parent, struct task_struct *child)
{
/* Derived from arch/i386/kernel/ptrace.c:sys_ptrace. */
- if (!cap_issubset
(child->cap_permitted, cur
rent->cap_permitted) &&
- !
capable(
CAP_SYS_PTRACE))
+ if (!cap_issubset
(child->cap_permitted, pa
rent->cap_permitted) &&
+ !
__capable(parent,
CAP_SYS_PTRACE))
return -EPERM;
return 0;
}
return -EPERM;
return 0;
}
@@
-169,7
+169,7
@@
void cap_bprm_apply_creds (struct linux_binprm *bprm, int unsafe)
/* For init, we want to retain the capabilities set
* in the init_task struct. Thus we skip the usual
* capability rules */
/* For init, we want to retain the capabilities set
* in the init_task struct. Thus we skip the usual
* capability rules */
- if (
current->pid != 1
) {
+ if (
!is_init(current)
) {
current->cap_permitted = new_permitted;
current->cap_effective =
cap_intersect (new_permitted, bprm->cap_effective);
current->cap_permitted = new_permitted;
current->cap_effective =
cap_intersect (new_permitted, bprm->cap_effective);