On Wed, Jul 13, 2005 at 01:51:46PM -0400, Horst von Brand wrote:
> Nicholas Hans Simmonds <[EMAIL PROTECTED]> wrote:
> > Sorry, my earlier reply seems to have gotten lost somewhere. I've been
> > pondering this issue for some time and am still not sure what's the best
> > answer. I've attached a small patch which handles this by detecting byte
> > swapping of the version code. I'm not convinced it's necessary but
> > shouldn't hurt.
> > 
> > diff --git a/security/commoncap.c b/security/commoncap.c
> > --- a/security/commoncap.c
> > +++ b/security/commoncap.c
> > @@ -153,6 +153,15 @@ int cap_bprm_set_security (struct linux_
> >     down(&bprm_dentry->d_inode->i_sem);
> >     ret = bprm_getxattr(bprm_dentry,XATTR_CAP_SET,&caps,sizeof(caps));
> >     if(ret == sizeof(caps)) {
> > +           if(caps.version = swab32(_LINUX_CAPABILITY_VERSION)) {
>                               ^
>                               |
>                               +-- Surely wrong?!
> 

True, just noticed that. Amazing how even the simplest patches provide
such ample opportunity to shoot oneself in the foot.

> > +                   swab32s(&caps.version);
> > +                   swab32s(&caps.effective);
> > +                   swab32s(&caps.mask_effective);
> > +                   swab32s(&caps.permitted);
> > +                   swab32s(&caps.mask_permitted);
> > +                   swab32s(&caps.inheritable);
> > +                   swab32s(&caps.mask_inheritable);
> > +           }
> >             if(caps.version == _LINUX_CAPABILITY_VERSION) {
> >                     cap_t(bprm->cap_effective) &= caps.mask_effective;
> >                     cap_t(bprm->cap_effective) |= caps.effective;
> -- 
> Dr. Horst H. von Brand                   User #22616 counter.li.org
> Departamento de Informatica                     Fono: +56 32 654431
> Universidad Tecnica Federico Santa Maria              +56 32 654239
> Casilla 110-V, Valparaiso, Chile                Fax:  +56 32 797513

Other than this, what are the general thoughts about this method as
opposed to just using a well defined byte order?

Thanks,

Nicholas
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to