On Sat, 10 Dec 2011, David Gibson wrote:

> On Fri, Dec 09, 2011 at 02:20:17PM -0500, Eric B Munson wrote:
> > Currently the library will select the first hugetlbfs mount it finds for a
> > given page size for usage.  This can lead to frustrating failures when root
> > owns the first mount and a user has a later mount in the list.  This patch
> > makes find_mounts check if a given mount is usable by the current user.  
> > Mounts
> > that are not usable will be skipped.
> > 
> > Signed-off-by: Eric B Munson <emun...@mgebm.net>
> > Cc: Andrew Lutomirski <l...@mit.edu>
> > ---
> >  hugeutils.c |   26 +++++++++++++++++++++++++-
> >  1 files changed, 25 insertions(+), 1 deletions(-)
> > 
> > diff --git a/hugeutils.c b/hugeutils.c
> > index b28bd0a..5b16a31 100644
> > --- a/hugeutils.c
> > +++ b/hugeutils.c
> > @@ -37,6 +37,7 @@
> >  #include <sys/vfs.h>
> >  #include <sys/statfs.h>
> >  #include <sys/types.h>
> > +#include <sys/stat.h>
> >  #include <sys/mman.h>
> >  #include <sys/file.h>
> >  #include <sys/uio.h>
> > @@ -607,6 +608,28 @@ void debug_show_page_sizes(void)
> >                     hpage_sizes[i].mount);
> >  }
> >  
> > +static bool hugetlbfs_test_access(const char *path)
> > +{
> > +   struct stat stats;
> > +   uid_t uid;
> > +   gid_t gid;
> > +   if (stat(path, &stats))
> > +           return false;
> > +
> > +   if (stats.st_mode & S_IRWXO)
> > +           return true;
> > +
> > +   gid = getegid();
> > +   if (stats.st_gid == gid && (stats.st_mode & S_IRWXG))
> > +           return true;
> > +
> > +   uid = geteuid();
> > +   if (stats.st_uid == uid && (stats.st_mode & S_IRWXU))
> > +           return true;
> > +
> > +   return false;
> > +}
> 
> Couldn't you simplify this logic by using access(2)?
> 
> -- 
> David Gibson                  | I'll have my music baroque, and my code
> david AT gibson.dropbear.id.au        | minimalist, thank you.  NOT _the_ 
> _other_
>                               | _way_ _around_!
> http://www.ozlabs.org/~dgibson
> 

It sure would, thanks for pointing it out.

Eric

Attachment: signature.asc
Description: Digital signature

------------------------------------------------------------------------------
Learn Windows Azure Live!  Tuesday, Dec 13, 2011
Microsoft is holding a special Learn Windows Azure training event for 
developers. It will provide a great way to learn Windows Azure and what it 
provides. You can attend the event by watching it streamed LIVE online.  
Learn more at http://p.sf.net/sfu/ms-windowsazure
_______________________________________________
Libhugetlbfs-devel mailing list
Libhugetlbfs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libhugetlbfs-devel

Reply via email to