summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--9999/0302-Drop-glibc-lock-when-returning-early.patch36
1 files changed, 36 insertions, 0 deletions
diff --git a/9999/0302-Drop-glibc-lock-when-returning-early.patch b/9999/0302-Drop-glibc-lock-when-returning-early.patch
new file mode 100644
index 0000000..4eab4ea
--- /dev/null
+++ b/9999/0302-Drop-glibc-lock-when-returning-early.patch
@@ -0,0 +1,36 @@
+From fd939e8740a97b3ffc5816cebb7be947c7b560af Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Mon, 7 Mar 2022 01:59:53 +0100
+Subject: [PATCH] Drop glibc lock when returning early
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Fixes 1bcdcd4fec9bfe2f1d3fef67a43825903f6a5f2b
+
+Bug: https://bugs.gentoo.org/828070
+Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
+(cherry picked from commit 81f6a812264e375a695e5b00e2906da8102cc9b6)
+---
+ nss/nss_database.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/nss/nss_database.c b/nss/nss_database.c
+index 133682b858..5f58baf34b 100644
+--- a/nss/nss_database.c
++++ b/nss/nss_database.c
+@@ -424,8 +424,10 @@ nss_database_check_reload_and_get (struct nss_database_state *local,
+ errors here are very unlikely, but the chance that we're entering
+ a container is also very unlikely, so we err on the side of both
+ very unlikely things not happening at the same time. */
+- if (__stat64_time64 ("/", &str) != 0)
++ if (__stat64_time64 ("/", &str) != 0) {
++ __libc_lock_unlock (local->lock);
+ return false;
++ }
+
+ if (local->root_ino != 0 && (str.st_ino != local->root_ino
+ || str.st_dev != local->root_dev))
+--
+2.34.1
+