diff --git a/core/glibc/PKGBUILD b/core/glibc/PKGBUILD index 3549e2e32..1cd4a6c56 100644 --- a/core/glibc/PKGBUILD +++ b/core/glibc/PKGBUILD @@ -14,8 +14,8 @@ noautobuild=1 pkgname=glibc -pkgver=2.32 -pkgrel=5 +pkgver=2.33 +pkgrel=3 arch=(x86_64) url='https://www.gnu.org/software/libc' license=(GPL LGPL) @@ -28,16 +28,16 @@ source=(https://ftp.gnu.org/gnu/glibc/glibc-$pkgver.tar.xz{,.sig} locale.gen.txt locale-gen sdt.h sdt-config.h - bz26534.patch) + bz27343.patch) validpgpkeys=(7273542B39962DF7B299931416792B4EA25340F8 # Carlos O'Donell BC7C7372637EC10C57D7AA6579C43DFBF1CF2187) # Siddhesh Poyarekar -md5sums=('720c7992861c57cf97d66a2f36d8d1fa' +md5sums=('390bbd889c7e8e8a7041564cb6b27cca' 'SKIP' '07ac979b6ab5eeb778d55f041529d623' '476e9113489f93b348b21e144b6a8fcf' '91fec3b7e75510ae2ac42533aa2e695e' '680df504c683640b02ed4a805797c0b2' - 'fc57038c1297c7c11258e8dda1623ec2') + 'cfe57018d06bf748b8ca1779980fef33') prepare() { mkdir -p glibc-build @@ -45,14 +45,8 @@ prepare() { [[ -d glibc-$pkgver ]] && ln -s glibc-$pkgver glibc cd glibc - local i; for i in ${source[@]}; do - case ${i%::*} in - *.patch) - echo " -> Applying ${i}" - patch -p1 -i "$srcdir/${i}" - ;; - esac - done + # commit c3479fb7939898ec22c655c383454d6e8b982a67 + patch -p1 -i "$srcdir"/bz27343.patch } build() { diff --git a/core/glibc/bz26534.patch b/core/glibc/bz26534.patch deleted file mode 100644 index 5a2fdd8e2..000000000 --- a/core/glibc/bz26534.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/sysdeps/x86_64/fpu/multiarch/ifunc-fma4.h 2020-08-25 15:08:15.049364392 +0200 -+++ b/sysdeps/x86_64/fpu/multiarch/ifunc-fma4.h 2020-08-25 15:08:20.012697875 +0200 -@@ -32,7 +32,7 @@ - && CPU_FEATURE_USABLE_P (cpu_features, AVX2)) - return OPTIMIZE (fma); - -- if (CPU_FEATURE_USABLE_P (cpu_features, FMA)) -+ if (CPU_FEATURE_USABLE_P (cpu_features, FMA4)) - return OPTIMIZE (fma4); - - return OPTIMIZE (sse2); diff --git a/core/glibc/bz27343.patch b/core/glibc/bz27343.patch new file mode 100644 index 000000000..3db6a9440 --- /dev/null +++ b/core/glibc/bz27343.patch @@ -0,0 +1,48 @@ +From c3479fb7939898ec22c655c383454d6e8b982a67 Mon Sep 17 00:00:00 2001 +From: Sergei Trofimovich +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 +--- + 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 +