summaryrefslogtreecommitdiff
path: root/security
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2011-02-15 10:48:28 +0300
committerPaul Mundt <lethal@linux-sh.org>2011-02-15 10:48:28 +0300
commit18e9550273b8a4d28044202f51cb2c3c9254d7c6 (patch)
treea162ad088c712bd6dc35c7013cd30999731823c2 /security
parent17292ecc07857bb16737c340dda289ab9d219e05 (diff)
parentd4f7e513234019a005c4d33477189f2a4e53bb9c (diff)
downloadlinux-18e9550273b8a4d28044202f51cb2c3c9254d7c6.tar.xz
Merge branch 'sh/st-integration' into sh-latest
Diffstat (limited to 'security')
-rw-r--r--security/security.c5
-rw-r--r--security/selinux/hooks.c6
2 files changed, 7 insertions, 4 deletions
diff --git a/security/security.c b/security/security.c
index 739e40362f44..7b7308ace8c5 100644
--- a/security/security.c
+++ b/security/security.c
@@ -154,10 +154,9 @@ int security_capset(struct cred *new, const struct cred *old,
effective, inheritable, permitted);
}
-int security_capable(int cap)
+int security_capable(const struct cred *cred, int cap)
{
- return security_ops->capable(current, current_cred(), cap,
- SECURITY_CAP_AUDIT);
+ return security_ops->capable(current, cred, cap, SECURITY_CAP_AUDIT);
}
int security_real_capable(struct task_struct *tsk, int cap)
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
index e276eb468536..c8d699270687 100644
--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -3198,7 +3198,11 @@ static void selinux_cred_free(struct cred *cred)
{
struct task_security_struct *tsec = cred->security;
- BUG_ON((unsigned long) cred->security < PAGE_SIZE);
+ /*
+ * cred->security == NULL if security_cred_alloc_blank() or
+ * security_prepare_creds() returned an error.
+ */
+ BUG_ON(cred->security && (unsigned long) cred->security < PAGE_SIZE);
cred->security = (void *) 0x7UL;
kfree(tsec);
}