From owner-freebsd-bugs Fri Oct 8 14:50: 6 1999 Delivered-To: freebsd-bugs@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.ORG [204.216.27.21]) by hub.freebsd.org (Postfix) with ESMTP id 00DF31502A for ; Fri, 8 Oct 1999 14:50:01 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.9.3/8.9.2) id OAA29972; Fri, 8 Oct 1999 14:50:01 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Date: Fri, 8 Oct 1999 14:50:01 -0700 (PDT) Message-Id: <199910082150.OAA29972@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.org Cc: From: "Robert Wojciechowski Jr." Subject: RE: kern/14201: setpassent() in libc does not function properly Reply-To: "Robert Wojciechowski Jr." Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org The following reply was made to PR kern/14201; it has been noted by GNATS. From: "Robert Wojciechowski Jr." To: 'Ruslan Ermilov' Cc: freebsd-gnats-submit@FreeBSD.org Subject: RE: kern/14201: setpassent() in libc does not function properly Date: Fri, 8 Oct 1999 17:43:59 -0400 A test for this bug is: #include #include #include #include int main() { setpassent(1); getpwent(); chroot("/usr"); chdir("/"); if(!getpwuid(0)) { printf("setpassent doesn't appear to work\n"); } else { if(!getpwuid(0)) printf("second getpwuid(0) didn't work\n"); else printf("setpassent works\n"); } return 0; } Right now, the second getpwuid(0) call fails. Adding the if (!_pw_stayopen) before the endpwent() in both getpwnam() and getpwuid() lets this test pass, but is it a sufficient fix? Is a closing call to endpwent() necessary for a program to correctly close the database? Robert S. Wojciechowski Jr. robertw@wojo.com PGP: 0xF2CA68F2 - http://www.wojo.com/pgpkeys/robertw.asc To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message