commit:     6415ce699bf1dafc403be7464df662b2879687e8
Author:     Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org>
AuthorDate: Sat Feb 12 18:44:46 2022 +0000
Commit:     Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org>
CommitDate: Sat Feb 12 18:44:46 2022 +0000
URL:        
https://gitweb.gentoo.org/proj/toolchain/glibc-patches.git/commit/?id=6415ce69

Add patch for bug 828070

Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28752
Bug: https://bugs.gentoo.org/828070
Signed-off-by: Andreas K. Hüttel <dilfridge <AT> gentoo.org>

 ...ault-in-getpwuid-when-stat-fails-BZ-28752.patch | 39 ++++++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/9999/0301-Fix-segfault-in-getpwuid-when-stat-fails-BZ-28752.patch 
b/9999/0301-Fix-segfault-in-getpwuid-when-stat-fails-BZ-28752.patch
new file mode 100644
index 0000000..85cb24a
--- /dev/null
+++ b/9999/0301-Fix-segfault-in-getpwuid-when-stat-fails-BZ-28752.patch
@@ -0,0 +1,39 @@
+From aa1d70e59ee6ad1503bc853da75afb35d51381be Mon Sep 17 00:00:00 2001
+From: Adhemerval Zanella <[email protected]>
+Date: Sat, 12 Feb 2022 19:40:58 +0100
+Subject: [PATCH] Fix segfault in getpwuid when stat fails (BZ #28752)
+
+[azanella proposed this patch to sam when discussing the issue,
+ but it's not anywhere upstream yet- dilfridge]
+
+Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28752
+Bug: https://bugs.gentoo.org/828070
+(cherry picked from commit 1bcdcd4fec9bfe2f1d3fef67a43825903f6a5f2b)
+---
+ nss/nss_database.c | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/nss/nss_database.c b/nss/nss_database.c
+index d56c5b798d..35846d7ebc 100644
+--- a/nss/nss_database.c
++++ b/nss/nss_database.c
+@@ -424,11 +424,11 @@ 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
+-      || (local->root_ino != 0
+-        && (str.st_ino != local->root_ino
+-            ||  str.st_dev != local->root_dev)))
+-    {
++  if (__stat64_time64 ("/", &str) != 0)
++    return false;
++
++  if (local->root_ino != 0 && (str.st_ino != local->root_ino
++                              || str.st_dev != local->root_dev))
+       /* Change detected; disable reloading and return current state.  */
+       atomic_store_release (&local->data.reload_disabled, 1);
+       *result = local->data.services[database_index];
+-- 
+2.34.1
+

Reply via email to