diff options
-rw-r--r-- | 9999/0302-Drop-glibc-lock-when-returning-early.patch | 36 |
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 + |