Hi Paul, Paul Eggert <egg...@cs.ucla.edu> skribis:
> On 11/12/11 13:48, Ludovic Courtès wrote: >> +#ifdef __GNU__ >> + if (euid == -1 && !use_real >> + && !just_group && !just_group_list && !just_context) >> + error (EXIT_FAILURE, errno, _("cannot get effective UID")); >> +#endif > > I suggest removing the "#ifdef __GNU__" here and in its other > three uses in the patch, as functions like as geteuid() can fail on > a few non-GNU systems too. See: > > http://publib.boulder.ibm.com/infocenter/iseries/v5r3/index.jsp?topic=%2Fapis%2Fgeteuid.htm > > For this particular application (the 'id' program) I doubt whether > it's worth our time to configure this stuff at compile-time, > and that it's fine to do a run-time check on all platforms. OTOH, on POSIX-conforming systems (which includes GNU/Linux, so it may be the majority of systems in use), -1 may well be a valid UID/GID. That’s why I was conservative and decided to ifdef that. This ifdef also served as a documentation that this is a GNU extension to POSIX. Perhaps it’d be safer to keep an ifdef and list all the OSes known to have this behavior? Thanks, Ludo’.