This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] nsswitch: Add group merging support
- From: Carlos O'Donell <carlos at redhat dot com>
- To: Stephen Gallagher <sgallagh at redhat dot com>, libc-alpha at sourceware dot org
- Date: Fri, 15 Apr 2016 01:02:53 -0400
- Subject: Re: [PATCH] nsswitch: Add group merging support
- Authentication-results: sourceware.org; auth=none
- References: <56FA0D7F dot 1080704 at redhat dot com> <1459452723-24814-1-git-send-email-sgallagh at redhat dot com> <20160404192539 dot GB6588 at vapier dot lan> <570D2015 dot 4000709 at redhat dot com> <20160412175335 dot GB6588 at vapier dot lan> <570E62E4 dot 4080100 at redhat dot com> <20160413153216 dot GJ6588 at vapier dot lan>
On 04/13/2016 11:32 AM, Mike Frysinger wrote:
> On 13 Apr 2016 11:16, Carlos O'Donell wrote:
>> On 04/12/2016 01:53 PM, Mike Frysinger wrote:
>>>> You can _detect_ this behaviour by using an iterator to find these conflicting
>>>> entries and then play with /etc/nsswitch.conf to find the service which has
>>>> them and eventually remove them.
>>>
>>> what i previously requested was:
>>> could you clarify "undefined" ? people could interpret this as memory
>>> corruption / crashes, while others are are inconsistent results. i think
>>> we just want the latter.
>>> ...
>>> in general i'm fine with "undefined", i would just prefer scoping it a
>>> bit. it's "undefined" in terms of the result set, but it's not in terms
>>> of your program eating itself.
>>>
>>> so i don't think your desires are at odds with my request. i simply want it
>>> to say that the return values (or whatever) are undefined rather than having
>>> the documentation imply all your programs will die an abort/assert crash, or
>>> enter the "undefined behavior" space like we have with "C undefined behavior".
>>
>> I'm sorry, I missed that in your original response.
>>
>> You raised a good point.
>>
>> Let me rewrite it like this:
>>
>> +When processing @samp{merge} for @samp{group} membership, the group GID
>> +and name must be identical for both entries. If only one or the other is
>> +a match, the results are unspecified.
>>
>> We use the C/C++/POSIX meaning of "unspecified behaviour" here.
>>
>> That is to say that glibc imposes no requirements on what the results
>> should be if a misconfiguration is detected. However, the program is correct
>> and should not crash.
>>
>> If you're OK with that then I'll use that wording.
>
> sgtm, thanks
> -mike
OK, so this is almost about ready to checkin.
The minor nit is that this patch creates new PLT entries in libc.so.6
and I need to determine if I can remove those with internal aliases
(since the nscd code should have recompiled copies and not need the
symbol).
--
Cheers,
Carlos.