From owner-freebsd-bugs Mon Oct 11 13: 0: 5 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 B34C6156ED for ; Mon, 11 Oct 1999 13:00:01 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.9.3/8.9.2) id NAA52140; Mon, 11 Oct 1999 13:00:01 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Date: Mon, 11 Oct 1999 13:00:01 -0700 (PDT) Message-Id: <199910112000.NAA52140@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: "'freebsd-gnats-submit@freebsd.org'" Cc: Subject: Re: kern/14201: setpassent() in libc does not function properly Date: Mon, 11 Oct 1999 15:56:43 -0400 Working and tested patch (adopted from OpenBSD and NetBSD): -- BEGIN PATCH -- --- getpwent.c.orig Mon Oct 11 15:34:56 1999 +++ getpwent.c Mon Oct 11 14:59:42 1999 @@ -176,7 +176,10 @@ if (rval && (_pw_passwd.pw_name[0] == '+'|| _pw_passwd.pw_name[0] == '-')) rval = 0; - endpwent(); + if (!_pw_stayopen) { + (void)(_pw_db->close)(_pw_db); + _pw_db = (DB *)NULL; + } return(rval ? &_pw_passwd : (struct passwd *)NULL); } @@ -216,7 +219,10 @@ if (rval && (_pw_passwd.pw_name[0] == '+'|| _pw_passwd.pw_name[0] == '-')) rval = 0; - endpwent(); + if (!_pw_stayopen) { + (void)(_pw_db->close)(_pw_db); + _pw_db = (DB *)NULL; + } return(rval ? &_pw_passwd : (struct passwd *)NULL); } -- END PATCH -- 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