From 937ab6b08abbca38ce3b92eeffe31c503d9d1e63 Mon Sep 17 00:00:00 2001
From: Koichiro Iwao
Date: Mon, 10 Mar 2025 14:07:18 +0000
Subject: [PATCH] Apply patch from upstream BZ #32470
---
SOURCES/glibc-upstream-2.34-bz-32470.patch | 36 ++++++++++++++++++++++
SPECS/glibc.spec | 8 ++++-
2 files changed, 43 insertions(+), 1 deletion(-)
create mode 100644 SOURCES/glibc-upstream-2.34-bz-32470.patch
diff --git a/SOURCES/glibc-upstream-2.34-bz-32470.patch b/SOURCES/glibc-upstream-2.34-bz-32470.patch
new file mode 100644
index 0000000..5dc75ba
--- /dev/null
+++ b/SOURCES/glibc-upstream-2.34-bz-32470.patch
@@ -0,0 +1,36 @@
+From 1b1f940938b6971a8c4eba33abf9cdcec83298a5 Mon Sep 17 00:00:00 2001
+From: Florian Weimer
+Date: Tue, 17 Dec 2024 18:12:03 +0100
+Subject: [PATCH] x86: Avoid integer truncation with large cache sizes (bug
+ 32470)
+
+Some hypervisors report 1 TiB L3 cache size. This results
+in some variables incorrectly getting zeroed, causing crashes
+in memcpy/memmove because invariants are violated.
+
+(cherry picked from commit 61c3450db96dce96ad2b24b4f0b548e6a46d68e5)
+---
+ sysdeps/x86/dl-cacheinfo.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/sysdeps/x86/dl-cacheinfo.h b/sysdeps/x86/dl-cacheinfo.h
+index 84b10b8540..7865e87054 100644
+--- a/sysdeps/x86/dl-cacheinfo.h
++++ b/sysdeps/x86/dl-cacheinfo.h
+@@ -901,12 +901,12 @@ dl_init_cacheinfo (struct cpu_features *cpu_features)
+
+ #if HAVE_TUNABLES
+ /* NB: The REP MOVSB threshold must be greater than VEC_SIZE * 8. */
+- unsigned int minimum_rep_movsb_threshold;
++ unsigned long int minimum_rep_movsb_threshold;
+ #endif
+ /* NB: The default REP MOVSB threshold is 4096 * (VEC_SIZE / 16) for
+ VEC_SIZE == 64 or 32. For VEC_SIZE == 16, the default REP MOVSB
+ threshold is 2048 * (VEC_SIZE / 16). */
+- unsigned int rep_movsb_threshold;
++ unsigned long int rep_movsb_threshold;
+ if (CPU_FEATURE_USABLE_P (cpu_features, AVX512F)
+ && !CPU_FEATURE_PREFERRED_P (cpu_features, Prefer_No_AVX512))
+ {
+--
+2.46.2
diff --git a/SPECS/glibc.spec b/SPECS/glibc.spec
index b57d635..530873d 100644
--- a/SPECS/glibc.spec
+++ b/SPECS/glibc.spec
@@ -157,7 +157,7 @@ end \
Summary: The GNU libc libraries
Name: glibc
Version: %{glibcversion}
-Release: 168%{?dist}
+Release: 168%{?dist}.alma.1
# In general, GPLv2+ is used by programs, LGPLv2+ is used for
# libraries.
@@ -1115,6 +1115,9 @@ Patch807: glibc-RHEL-24740-2.patch
Patch808: glibc-RHEL-24740-3.patch
Patch809: glibc-RHEL-71547.patch
+# AlmaLinux Patch
+Patch1000: glibc-upstream-2.34-bz-32470.patch
+
##############################################################################
# Continued list of core "glibc" package information:
##############################################################################
@@ -3107,6 +3110,9 @@ update_gconv_modules_cache ()
%endif
%changelog
+* Mon Mar 10 2025 Koichiro Iwao - 2.34-168.alma.1
+- Apply patch from upstream BZ #32470
+
* Thu Feb 13 2025 Florian Weimer - 2.34-168
- Fix transliteration regression in iconv tool (RHEL-71547)