Date: Mon, 24 Aug 1998 21:58:18 +0200 (CEST) From: Stephane Legrand <stephane@lituus.fr> To: hackers@FreeBSD.ORG Cc: mackler@barter.dewline.com Subject: getpwnam() and getpwuid() functions in libc (was ProFTPD - pwd.db) Message-ID: <199808241958.VAA02683@sequoia.lituus.fr> In-Reply-To: <199808190614.CAA26143@barter.dewline.com> References: <199808190614.CAA26143@barter.dewline.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Hello, I tested the patch proposed by Adam Mackler on FreeBSD-current and it works well. It corrects a problem with ProFTPD. As the ProFTPD author (Floody <flood@evcom.net>) say, the FreeBSD libc seems to be really different from the others *BSD for that particular point. Should the endpwent() function be called only if _pw_stayopen is false (as the patch suggests and as others *BSD seem do) ? Adam Mackler writes: > > Date: Thu, 6 Aug 1998 17:50:08 -0400 > > From: Floody <flood@evcom.net> > > Reply-To: proftpd-l@evcom.net > > To: Karl Pielorz <kpielorz@tdx.co.uk> > > Cc: proftpd-l@evcom.net > > Subject: Re: [proftpd-l] New ProFTPd user - Security, Incoming and pwd.db? > > > > Ok. I put up a test FreeBSD 2.2.7 system. There appears to be a libc > > problem with the setpassent() function, which doesn't work on FreeBSD as > > documented in the man pages (or on any other BSD). This is the heart of > > the problem. There is no workaround until libc is fixed. > > Hi: > > I think the following patch may fix the problem, but I'm afraid > I don't know how to rebuild my c library. If you find out if this > works can you let me know? Thanks. > > > *** getpwent.c Wed Aug 19 02:00:13 1998 > --- getpwent.c.dist Wed Aug 19 01:58:33 1998 > *************** > *** 194,201 **** > if (rval && (_pw_passwd.pw_name[0] == '+'|| > _pw_passwd.pw_name[0] == '-')) rval = 0; > > ! if (!_pw_stayopen) > ! endpwent(); > return(rval ? &_pw_passwd : (struct passwd *)NULL); > } > > --- 194,200 ---- > if (rval && (_pw_passwd.pw_name[0] == '+'|| > _pw_passwd.pw_name[0] == '-')) rval = 0; > > ! endpwent(); > return(rval ? &_pw_passwd : (struct passwd *)NULL); > } > > > -- > Adam Mackler > Dewline Communications, LLC > 212-505-9149 > -- stephane@lituus.fr | systeme d'exploitation FreeBSD http://195.25.51.6/stephane/ | http://www.freebsd.org/ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199808241958.VAA02683>