From patchwork Mon Jun 17 19:38:38 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: DJ Delorie X-Patchwork-Id: 33165 Received: (qmail 60405 invoked by alias); 17 Jun 2019 19:38:43 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 60396 invoked by uid 89); 17 Jun 2019 19:38:42 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-16.8 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, SPF_HELO_PASS autolearn=ham version=3.3.1 spammy=HX-Languages-Length:646 X-HELO: mx1.redhat.com Date: Mon, 17 Jun 2019 15:38:38 -0400 Message-Id: From: DJ Delorie To: libc-alpha@sourceware.org Subject: nss_db: reset mapping after last get*ent nss_db allows for getpwent et al to be called without a set*ent, but it only works once. After the last get*ent a set*ent is required to restart, because the end*ent did not properly reset the module. Resetting it to NULL allows for a proper restart. * nss/nss_db/db-open.c (internal_endent): Reset mapping to NULL. diff --git a/nss/nss_db/db-open.c b/nss/nss_db/db-open.c index 8a83d6b930..f7c53b4486 100644 --- a/nss/nss_db/db-open.c +++ b/nss/nss_db/db-open.c @@ -64,4 +64,5 @@ void internal_endent (struct nss_db_map *mapping) { munmap (mapping->header, mapping->len); + mapping->header = NULL; }