summaryrefslogtreecommitdiffstats
path: root/patches/source/glibc/patches/0001-nsswitch-return-result-when-nss-database-is-locked.patch
diff options
context:
space:
mode:
author Patrick J Volkerding <volkerdi@slackware.com>2024-04-18 19:17:30 +0000
committer Eric Hameleers <alien@slackware.com>2024-04-19 13:30:41 +0200
commitd3c452d720018233486e993d409d08d30948111a (patch)
tree5d7237f45c053f5269ea21132445e78b6d06bbc0 /patches/source/glibc/patches/0001-nsswitch-return-result-when-nss-database-is-locked.patch
parent2a933a7e4fa4c4b799f410f676b997047b4c68a5 (diff)
downloadcurrent-d3c452d720018233486e993d409d08d30948111a.tar.gz
current-d3c452d720018233486e993d409d08d30948111a.tar.xz
Thu Apr 18 19:17:30 UTC 202420240418191730_15.0
patches/packages/bind-9.16.50-x86_64-1_slack15.0.txz: Upgraded. This is a bugfix release. patches/packages/aaa_glibc-solibs-2.33-x86_64-6_slack15.0.txz: Rebuilt. patches/packages/glibc-2.33-x86_64-6_slack15.0.txz: Rebuilt. This update fixes a security issue: The iconv() function in the GNU C Library versions 2.39 and older may overflow the output buffer passed to it by up to 4 bytes when converting strings to the ISO-2022-CN-EXT character set, which may be used to crash an application or overwrite a neighbouring variable. For more information, see: https://www.cve.org/CVERecord?id=CVE-2024-2961 (* Security fix *) patches/packages/glibc-i18n-2.33-x86_64-6_slack15.0.txz: Rebuilt. patches/packages/glibc-profile-2.33-x86_64-6_slack15.0.txz: Rebuilt. testing/packages/bind-9.18.26-x86_64-1_slack15.0.txz: Upgraded. This is a bugfix release.
Diffstat (limited to 'patches/source/glibc/patches/0001-nsswitch-return-result-when-nss-database-is-locked.patch')
-rw-r--r--patches/source/glibc/patches/0001-nsswitch-return-result-when-nss-database-is-locked.patch47
1 files changed, 47 insertions, 0 deletions
diff --git a/patches/source/glibc/patches/0001-nsswitch-return-result-when-nss-database-is-locked.patch b/patches/source/glibc/patches/0001-nsswitch-return-result-when-nss-database-is-locked.patch
new file mode 100644
index 000000000..458369251
--- /dev/null
+++ b/patches/source/glibc/patches/0001-nsswitch-return-result-when-nss-database-is-locked.patch
@@ -0,0 +1,47 @@
+From c3479fb7939898ec22c655c383454d6e8b982a67 Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <slyfox@gentoo.org>
+Date: Fri, 5 Feb 2021 07:32:18 +0000
+Subject: [PATCH] nsswitch: return result when nss database is locked [BZ
+ #27343]
+
+Before the change nss_database_check_reload_and_get() did not populate
+the '*result' value when it returned success in a case of chroot
+detection. This caused initgroups() to use garage pointer in the
+following test (extracted from unbound):
+
+```
+
+int main() {
+ // load some NSS modules
+ struct passwd * pw = getpwnam("root");
+
+ chdir("/tmp");
+ chroot("/tmp");
+ chdir("/");
+ // access nsswitch.conf in a chroot
+ initgroups("root", 0);
+}
+```
+
+Reviewed-by: DJ Delorie <dj@redhat.com>
+---
+ nss/nss_database.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/nss/nss_database.c b/nss/nss_database.c
+index cf0306adc4..e1bef6bd75 100644
+--- a/nss/nss_database.c
++++ b/nss/nss_database.c
+@@ -398,8 +398,9 @@ nss_database_check_reload_and_get (struct nss_database_state *local,
+ && (str.st_ino != local->root_ino
+ || str.st_dev != local->root_dev)))
+ {
+- /* Change detected; disable reloading. */
++ /* Change detected; disable reloading and return current state. */
+ atomic_store_release (&local->data.reload_disabled, 1);
++ *result = local->data.services[database_index];
+ __libc_lock_unlock (local->lock);
+ __nss_module_disable_loading ();
+ return true;
+--
+2.27.0