Greetings:
I have to ask everyone here to ascertain if I'm going daft. Here's the
situation:
32-bit Perl on 64-bit Perl platform. getpwent(2) returns 64-bit UIDs just
fine. getgrent(2), however, truncates them to a 32-bit value. GIDs
returned from functions like stat(2) work just fine, however.
I'm seeing this on AIX 5.3:
# perl -e 'do { @pw = getpwent } until $pw[0] eq "nobody"; print $pw[2], "\n";'
4294967294
# perl -e 'do { @pw = getpwent } until $pw[0] eq "nobody"; print $pw[3], "\n";'
4294967294
# perl -e 'do { @pw = getgrent } until $pw[0] eq "nobody"; print $pw[2], "\n";'
-2
# grep nobody /etc/passwd /etc/group
/etc/passwd:nobody:!:4294967294:4294967294::/:
/etc/group:nobody:!:4294967294:nobody,lpd
Legitimate bug in Perl? This one is version 5.8.2, BTW.
--Arthur Corliss
Live Free or Die