core/glibc to 2.33-3

This commit is contained in:
Kevin Mihelich 2021-02-06 15:36:04 +00:00
parent f40ddc83a8
commit 26edc3671d
3 changed files with 55 additions and 24 deletions

View file

@ -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() {

View file

@ -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);

48
core/glibc/bz27343.patch Normal file
View file

@ -0,0 +1,48 @@
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