[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [libvirt] [PATCH 2/7] util: add virGetGroupList



On 07/23/2013 11:03 AM, Eric Blake wrote:
> https://bugzilla.redhat.com/show_bug.cgi?id=964358
> 
> Since neither getpwuid_r() nor initgroups() are safe to call in
> between fork and exec (they obtain a mutex, but if some other
> thread in the parent also held the mutex at the time of the fork,
> the child will deadlock), we have to split out the functionality
> that is unsafe.  At least glibc's initgroups() uses getgrouplist
> under the hood, so the ideal split is to expose getgrouplist for
> use before a fork.  Gnulib already gives us a nice wrapper via
> mgetgroups; we wrap it once more to look up by uid instead of name.
> 
> * bootstrap.conf (gnulib_modules): Add mgetgroups.
> * src/util/virutil.h (virGetGroupList): New declaration.
> * src/util/virutil.c (virGetGroupList): New function.
> * src/libvirt_private.syms (virutil.h): Export it.
> 
> Signed-off-by: Eric Blake <eblake redhat com>
> (cherry picked from commit 75c125641ac73473ba4b0542524d67a184769c8e)
> 
> Conflicts:
> 	bootstrap.conf - not updating gnulib submodule...
> 	configure.ac - ...so checking for getgrouplist by hand...
> 	src/util/virutil.c - ...and copying only the getgrouplist implementation rather than calling the gnulib function; also, file still named util.c
> 	src/libvirt_private.syms - context

ACK

- Cole


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]