diff options
author | 2022-02-12 19:44:46 +0100 | |
---|---|---|
committer | 2022-02-12 19:44:46 +0100 | |
commit | 6415ce699bf1dafc403be7464df662b2879687e8 (patch) | |
tree | a2754ac705701847e6c9b3553ec8aab5718b1dee | |
parent | Sync with azanella's branch release/2.34/master-bz23960 (diff) | |
download | glibc-patches-6415ce699bf1dafc403be7464df662b2879687e8.tar.gz glibc-patches-6415ce699bf1dafc403be7464df662b2879687e8.tar.bz2 glibc-patches-6415ce699bf1dafc403be7464df662b2879687e8.zip |
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@gentoo.org>
-rw-r--r-- | 9999/0301-Fix-segfault-in-getpwuid-when-stat-fails-BZ-28752.patch | 39 |
1 files changed, 39 insertions, 0 deletions
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 <adhemerval.zanella@linaro.org> +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 + |