diff options
author | Florian Weimer <fweimer@redhat.com> | 2024-12-17 18:12:03 +0100 |
---|---|---|
committer | Florian Weimer <fweimer@redhat.com> | 2024-12-17 18:56:05 +0100 |
commit | 71fca07505e8bf7be2e9a929064ebee57e31ab8c (patch) | |
tree | 48ced1b9ae3020dc71afbce5d004d2ac720b4a9e | |
parent | b2ab6ce0f5a9fa4631a8cc55bdf652deaa5dc47c (diff) | |
download | glibc-release/2.37/master.zip glibc-release/2.37/master.tar.gz glibc-release/2.37/master.tar.bz2 |
x86: Avoid integer truncation with large cache sizes (bug 32470)release/2.37/master
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)
-rw-r--r-- | NEWS | 1 | ||||
-rw-r--r-- | sysdeps/x86/dl-cacheinfo.h | 4 |
2 files changed, 3 insertions, 2 deletions
@@ -72,6 +72,7 @@ The following bugs are resolved with this release: [32052] Name space violation in fortify wrappers [32137] libio: Attempt wide backup free only for non-legacy code [32231] elf: Change ldconfig auxcache magic number + [32470] x86: Avoid integer truncation with large cache sizes Version 2.37 diff --git a/sysdeps/x86/dl-cacheinfo.h b/sysdeps/x86/dl-cacheinfo.h index 4383eb5..e369e1d 100644 --- a/sysdeps/x86/dl-cacheinfo.h +++ b/sysdeps/x86/dl-cacheinfo.h @@ -952,12 +952,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)) { |