view doc/posix-functions/getpwuid_r.texi @ 17410:ce63398f847f

getgroups: document portability issues Because I actually managed to hit deadlock in libvirt's child process due to glibc's mutex use in user database lookup, I figured it is worth documenting the issue for others to be aware of when writing a privileged multithreaded parent app that spawns child processes owned by non-privileged ids. * doc/glibc-functions/initgroups.texi (initgroups): Mention multithread safety. * doc/posix-functions/getpwuid.texi (getpwuid): Likewise. * doc/posix-functions/getpwuid_r.texi (getpwuid_r): Likewise. * doc/glibc-functions/getgrouplist.texi (getgrouplist): Mention getugroups. * doc/posix-functions/getgroups.texi (getgroups): Mention multithread safety and mgetgroups. Signed-off-by: Eric Blake <eblake@redhat.com>
author Eric Blake <eblake@redhat.com>
date Wed, 22 May 2013 14:21:36 -0600
parents da62858ef2f6
children b8576602c861
line wrap: on
line source

@node getpwuid_r
@section @code{getpwuid_r}
@findex getpwuid_r

POSIX specification:@* @url{http://www.opengroup.org/onlinepubs/9699919799/functions/getpwuid_r.html}

Gnulib module: extensions

Portability problems fixed by Gnulib:
@itemize
@item
This function has an incompatible declaration on some platforms:
Solaris 11 2011-11 (when @code{_POSIX_PTHREAD_SEMANTICS} is not defined).
@end itemize

Portability problems not fixed by Gnulib:
@itemize
@item
This function is unsafe to call between @code{fork} and @code{exec} if
the parent process is multi-threaded.  Use it prior to forking.
@item
This function is missing on some platforms:
OpenBSD 3.8, Minix 3.1.8, mingw, MSVC 9, BeOS.
@end itemize