[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#10021: [PATCH id] Add error-checking on GNU
From: |
Ludovic Courtès |
Subject: |
bug#10021: [PATCH id] Add error-checking on GNU |
Date: |
Mon, 14 Nov 2011 14:33:56 +0100 |
User-agent: |
Gnus/5.110018 (No Gnus v0.18) Emacs/24.0.90 (gnu/linux) |
Hi Jim,
Jim Meyering <address@hidden> skribis:
> Ludovic Courtès wrote:
>
>> Hi Paul,
>>
>> Paul Eggert <address@hidden> 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 for persevering.
> I tested this on a gnu/linux system and found that I could indeed create a
> user with a UID of 2^32-1 (though not directly via adduser -- it imposes
> a maximum of 2^32-2), and that without something like those #ifdefs,
> GNU id would mistakenly fail for such a user:
>
> id: cannot get effective UID: No such file or directory
>
> However, with the patch below, it does this:
>
> $ ./id -u
> 4294967295
OK, good to know. Thank *you* for persevering!
Ludo’.
- bug#10021: [PATCH id] Add error-checking on GNU, Ludovic Courtès, 2011/11/11
- bug#10021: [PATCH id] Add error-checking on GNU, Jim Meyering, 2011/11/11
- bug#10021: [PATCH id] Add error-checking on GNU, Paul Eggert, 2011/11/14
- bug#10021: [PATCH id] Add error-checking on GNU, Eric Blake, 2011/11/14
- bug#10021: [PATCH id] Add error-checking on GNU, Ludovic Courtès, 2011/11/14
- bug#10021: [PATCH id] Add error-checking on GNU, Paul Eggert, 2011/11/14
- bug#10021: [PATCH id] Add error-checking on GNU, Ludovic Courtès, 2011/11/15
- bug#10021: [PATCH id] Add error-checking on GNU, Paul Eggert, 2011/11/15
- bug#10021: [PATCH id] Add error-checking on GNU, Eric Blake, 2011/11/15
- bug#10021: [PATCH id] Add error-checking on GNU, Eric Blake, 2011/11/16
- bug#10021: [PATCH id] Add error-checking on GNU, Jim Meyering, 2011/11/15