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.


> 
> 
> 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)
> > --
> > To unsubscribe from this list: send the line "unsubscribe git-commits-head" 
> > in
> > the body of a message to [email protected]
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> > 
> 
> -- 
> James Morris
> <[email protected]>
> 
> _______________________________________________
> stable mailing list
> [email protected]
> http://linux.kernel.org/mailman/listinfo/stable

_______________________________________________
stable mailing list
[email protected]
http://linux.kernel.org/mailman/listinfo/stable

Reply via email to