On Tue, 2004-11-02 at 14:56, Nicholas Clark wrote:
> ftp://ftp.linux.activestate.com/pub/staff/gsar/APC/perl-5.8.x/
> ftp://ftp.linux.activestate.com/pub/staff/gsar/APC/perl-current/

Other than comments, there is no difference between reentr.* at the
5.8.x URL and that in the broken 5.8.3-18 in Fedora Core 2.

perl-current source is organized differently but the relevant code seems
to be the same (reentr.c line 694).  It erroneously assumes that errno
is meaningful.  The obvious fix is to remove the "|| (errno == ERANGE)"
clause.  However, there may be other libraries out there with different
definitions of getXXXent_r.

Note that the getXXXent_r functions can be rather complicated, searching
not just /etc/group but optionally NIS too under contro of
nsswitch.conf.  They may execute a large number of system calls so errno
may be clobbered many times (or not at all).  Hence the need to only
check the return value.

Reply via email to