* Greg KH ([email protected]) wrote: > On Mon, Feb 14, 2011 at 02:04:23PM +1100, James Morris wrote: > > This is buggy, don't use it as-is. > > Ok, I'll ignore it.
I see now...this one was not buggy, it's required for [2]. It was the next one[1] that was buggy, and it was subsequently replaced by the right fix[2]. So this one and [2] are needed together. thanks, -chris -- [1] Message-ID: <[email protected]>) Date: Mon, 14 Feb 2011 10:03:33 +1100 (EST) Subject: [stable] pci: use security_capable() when checking capablities during config space read (fwd) [2] Message-ID: <[email protected]> Date: Wed, 16 Feb 2011 11:27:34 +1100 (EST) Subject: [stable] pci: use security_capable() when checking capablities during config space read (fwd) > > On Mon, 14 Feb 2011, James Morris wrote: > > > > > ---------- Forwarded message ---------- > > > Date: Sat, 12 Feb 2011 00:59:18 GMT > > > From: Linux Kernel Mailing List <[email protected]> > > > To: [email protected] > > > Subject: security: add cred argument to security_capable() > > > > > > Gitweb: > > > http://git.kernel.org/linus/6037b715d6fab139742c3df8851db4c823081561 > > > Commit: 6037b715d6fab139742c3df8851db4c823081561 > > > Parent: deabb19ba4bd8c06ae69bc262e3594b515e3a459 > > > Author: Chris Wright <[email protected]> > > > AuthorDate: Wed Feb 9 22:11:51 2011 -0800 > > > Committer: James Morris <[email protected]> > > > CommitDate: Fri Feb 11 17:41:58 2011 +1100 > > > > > > security: add cred argument to security_capable() > > > > > > Expand security_capable() to include cred, so that it can be usable > > > in a > > > wider range of call sites. > > > > > > Signed-off-by: Chris Wright <[email protected]> > > > Acked-by: Serge Hallyn <[email protected]> > > > Signed-off-by: James Morris <[email protected]> > > > --- > > > include/linux/security.h | 6 +++--- > > > kernel/capability.c | 2 +- > > > security/security.c | 5 ++--- > > > 3 files changed, 6 insertions(+), 7 deletions(-) > > > > > > diff --git a/include/linux/security.h b/include/linux/security.h > > > index c642bb8..b2b7f97 100644 > > > --- a/include/linux/security.h > > > +++ b/include/linux/security.h > > > @@ -1662,7 +1662,7 @@ int security_capset(struct cred *new, const struct > > > cred *old, > > > const kernel_cap_t *effective, > > > const kernel_cap_t *inheritable, > > > const kernel_cap_t *permitted); > > > -int security_capable(int cap); > > > +int security_capable(const struct cred *cred, int cap); > > > int security_real_capable(struct task_struct *tsk, int cap); > > > int security_real_capable_noaudit(struct task_struct *tsk, int cap); > > > int security_sysctl(struct ctl_table *table, int op); > > > @@ -1856,9 +1856,9 @@ static inline int security_capset(struct cred *new, > > > return cap_capset(new, old, effective, inheritable, permitted); > > > } > > > > > > -static inline int security_capable(int cap) > > > +static inline int security_capable(const struct cred *cred, int cap) > > > { > > > - return cap_capable(current, current_cred(), cap, SECURITY_CAP_AUDIT); > > > + return cap_capable(current, cred, cap, SECURITY_CAP_AUDIT); > > > } > > > > > > static inline int security_real_capable(struct task_struct *tsk, int cap) > > > diff --git a/kernel/capability.c b/kernel/capability.c > > > index 2f05303..9e9385f 100644 > > > --- a/kernel/capability.c > > > +++ b/kernel/capability.c > > > @@ -306,7 +306,7 @@ int capable(int cap) > > > BUG(); > > > } > > > > > > - if (security_capable(cap) == 0) { > > > + if (security_capable(current_cred(), cap) == 0) { > > > current->flags |= PF_SUPERPRIV; > > > return 1; > > > } > > > diff --git a/security/security.c b/security/security.c > > > index 739e403..7b7308a 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) _______________________________________________ stable mailing list [email protected] http://linux.kernel.org/mailman/listinfo/stable
