getpwent bug?

Jens Rehsack rehsack at googlemail.com
Wed Jul 21 14:37:30 UTC 2010


On 07/16/10 18:13, Dan Nelson wrote:

Hi Dan,

> In the last episode (Jul 16), Jens Rehsack said:
>> On 07/16/10 15:07, Dan Nelson wrote:
>>> In the last episode (Jul 16), Jens Rehsack said:
>>>> Could you please take a look to my other mail (getgrent related) - there
>>>> seems another bug ...
>>>
>>> Do you have another one-liner that will reproduce it?  A simple
>>> "/usr/bin/getent group" doesn't return dupes for me.  Oddly enough, the
>>> *grent code doesn't use an internal counter, so the bug you found in
>>> endpwent doesn't exist in endgrent (afaik; the nsswitch code isn't that
>>> easy to read).
>>
>> Not really a one-liner:
>> perl -MData::Dumper -e 'setgrent; my %dupchk; while( my ( $name, $grpass,
>> $gid, $members ) = getgrent() ) { print "$name is returned more than once
>> (No $dupchk{$name} comes here)\n" if( $dupchk{$name}++ ); print Dumper( [
>> $name, $grpass, $gid, $members ] ) };'
>>
>> setgrent() doesn't work here.
>
> I ran that and got dupes for group entries that exist both in /etc/groups and
> my LDAP source, but that's expected.

You can see here
http://www.cpantesters.org/cpan/report/f5100ac6-9418-11df-9ebc-c4a68065c34d
the typical error picture. FreeBSD is the only system, where this error
occurs.

I rate it as a bug - but I will write merge code for the duplicated entries.

Best regards,
Jens


More information about the freebsd-questions mailing list