From 6415ce699bf1dafc403be7464df662b2879687e8 Mon Sep 17 00:00:00 2001 From: "Andreas K. Hüttel" Date: Sat, 12 Feb 2022 19:44:46 +0100 Subject: Add patch for bug 828070 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28752 Bug: https://bugs.gentoo.org/828070 Signed-off-by: Andreas K. Hüttel --- ...ault-in-getpwuid-when-stat-fails-BZ-28752.patch | 39 ++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 9999/0301-Fix-segfault-in-getpwuid-when-stat-fails-BZ-28752.patch 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 +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 + -- cgit v1.2.3-65-gdbad