* 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

Reply via email to