File nscd-Release-read-lock-after-resetting-timeout.patch of Package glibc.37170
From dfa871ac19fddd5a62a9eda970b0e742607675e1 Mon Sep 17 00:00:00 2001
From: DJ Delorie <dj@redhat.com>
Date: Mon, 25 Sep 2017 19:43:09 -0400
Subject: [PATCH] nscd: Release read lock after resetting timeout.
[BZ #22161]
* nscd/netgroupcache.c (addinnetgrX): Release read lock after
resetting timeout.
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Reviewed-by: Andreas Schwab <schwab@suse.de>
A lock is held by mempool_allocate() when CACHEABLE is true; we
must release this lock if we exit early.
---
nscd/netgroupcache.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/nscd/netgroupcache.c b/nscd/netgroupcache.c
index b9ea7c938e..b5041f370f 100644
--- a/nscd/netgroupcache.c
+++ b/nscd/netgroupcache.c
@@ -558,6 +558,8 @@ addinnetgrX (struct database_dyn *db, int fd, request_header *req,
dh->timeout = timeout;
dh->ttl = dataset->head.ttl;
++dh->nreloads;
+ if (cacheable)
+ pthread_rwlock_unlock (&db->lock);
return timeout;
}
--
2.45.0