Date: Thu, 22 Jul 2010 07:59:45 +0200 From: Jens Rehsack <rehsack@googlemail.com> To: Dan Nelson <dnelson@allantgroup.com> Cc: Ashish SHUKLA <ashish@freebsd.org>, freebsd-questions@freebsd.org Subject: Re: getpwent bug? Message-ID: <AANLkTilxFcHh1uMT6ukkvYeJBTG1hiRZPNxQLlz9ZRLZ@mail.gmail.com> In-Reply-To: <20100721200002.GA85432@dan.emsphone.com> References: <AANLkTin5RGYfu_Xt5HWxKFO8GMTOi3YWQ8dyr95ZDW-Y@mail.gmail.com> <20100715172615.GC5485@dan.emsphone.com> <86tyo0qd19.fsf@chateau.d.if> <20100716043056.GF5485@dan.emsphone.com> <AANLkTilSum3vumQhv4qtOQhCaSHo832Ub3b9bEhP0zSt@mail.gmail.com> <20100716150719.GG5485@dan.emsphone.com> <4C408744.3030409@netbsd.org> <20100716181316.GH5485@dan.emsphone.com> <4C470615.8030608@netbsd.org> <20100721200002.GA85432@dan.emsphone.com>
next in thread | previous in thread | raw e-mail | index | archive | help
2010/7/21 Dan Nelson <dnelson@allantgroup.com>: > In the last episode (Jul 21), Jens Rehsack said: >> 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? =A0A simple >> >>> "/usr/bin/getent group" doesn't return dupes for me. =A0Oddly 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 t= hat >> >>> easy to read). >> >> >> >> Not really a one-liner: >> >> perl -MData::Dumper -e 'setgrent; my %dupchk; while( my ( $name, >> >> $grpass, $gid, $members ) =3D 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/gro= ups and >> > my LDAP source, but that's expected. >> >> You can see here >> http://www.cpantesters.org/cpan/report/f5100ac6-9418-11df-9ebc-c4a68065c= 34d >> the typical error picture. FreeBSD is the only system, where this error >> occurs. > > I don't know how to read perl's test output; what part of that report > failed, and how do you know it was due to getgrent returning duplicate > values? Because I know the error picture - I've seen it on my FreeBSD box first. I probably should add some diag() output for failing tests ... > BTW - I ran your one-liner above on a SLES 10.2 Linux box and a Solaris 1= 0u7 > box, and got duplicate entries where groups existed in both /etc/groups a= nd > LDAP, just like on FreeBSD. =A0I think you may be relying on behaviour th= at > getgrent doesn't guarantee on any OS. But the duplicated entries I get are not duplicated in the source. I sent y= ou my /var/yp/groups file and the output of my one-liner. I have no LDAP setup to try out, but in this case my workaround could be a = good idea. Best regards, Jens
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTilxFcHh1uMT6ukkvYeJBTG1hiRZPNxQLlz9ZRLZ>