about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMaximilian Bosch <maximilian@mbosch.me>2024-02-01 10:50:46 +0100
committerGitHub <noreply@github.com>2024-02-01 10:50:46 +0100
commit2c582510dbd6657db54222db0567e7c34bd9bb24 (patch)
tree7d902cba20179e6387604ef13da342d4d8fae5f1
parent06002f375e1d20f1481abcb696a50f232202e7ac (diff)
parent7f8349fd48d8b996646017d5770aab6b13684529 (diff)
downloadnixlib-2c582510dbd6657db54222db0567e7c34bd9bb24.tar
nixlib-2c582510dbd6657db54222db0567e7c34bd9bb24.tar.gz
nixlib-2c582510dbd6657db54222db0567e7c34bd9bb24.tar.bz2
nixlib-2c582510dbd6657db54222db0567e7c34bd9bb24.tar.lz
nixlib-2c582510dbd6657db54222db0567e7c34bd9bb24.tar.xz
nixlib-2c582510dbd6657db54222db0567e7c34bd9bb24.tar.zst
nixlib-2c582510dbd6657db54222db0567e7c34bd9bb24.zip
Merge pull request #285050 from LeSuisse/glibc-2.38-44
glibc: 2.38-27 -> 2.38-44 and patch for glibc possible memory corruption in qsort()
-rw-r--r--pkgs/development/libraries/glibc/2.38-master.patch.gzbin35936 -> 55343 bytes
-rw-r--r--pkgs/development/libraries/glibc/common.nix9
-rw-r--r--pkgs/development/libraries/glibc/local-qsort-memory-corruption.patch14
3 files changed, 21 insertions, 2 deletions
diff --git a/pkgs/development/libraries/glibc/2.38-master.patch.gz b/pkgs/development/libraries/glibc/2.38-master.patch.gz
index 6414956807f4..a07e4f8e1d50 100644
--- a/pkgs/development/libraries/glibc/2.38-master.patch.gz
+++ b/pkgs/development/libraries/glibc/2.38-master.patch.gz
Binary files differdiff --git a/pkgs/development/libraries/glibc/common.nix b/pkgs/development/libraries/glibc/common.nix
index 3e17817c0bab..3eea259d8605 100644
--- a/pkgs/development/libraries/glibc/common.nix
+++ b/pkgs/development/libraries/glibc/common.nix
@@ -44,7 +44,7 @@
 
 let
   version = "2.38";
-  patchSuffix = "-27";
+  patchSuffix = "-44";
   sha256 = "sha256-+4KZiZiyspllRnvBtp0VLpwwfSzzAcnq+0VVt3DvP9I=";
 in
 
@@ -60,7 +60,7 @@ stdenv.mkDerivation ({
     [
       /* No tarballs for stable upstream branch, only https://sourceware.org/git/glibc.git and using git would complicate bootstrapping.
           $ git fetch --all -p && git checkout origin/release/2.38/master && git describe
-          glibc-2.38-27-g750a45a783
+          glibc-2.38-44-gd37c2b20a4
           $ git show --minimal --reverse glibc-2.38.. | gzip -9n --rsyncable - > 2.38-master.patch.gz
 
          To compare the archive contents zdiff can be used.
@@ -96,6 +96,11 @@ stdenv.mkDerivation ({
          & https://github.com/NixOS/nixpkgs/pull/188492#issuecomment-1233802991
       */
       ./reenable_DT_HASH.patch
+
+      /* Retrieved from https://salsa.debian.org/glibc-team/glibc/-/commit/662dbc4f9287139a0d9c91df328a5ba6cc6abee1#0f3c6d67cb8cf5bb35c421c20f828fea97b68edf
+         Qualys advisory: https://www.qualys.com/2024/01/30/qsort.txt
+       */
+      ./local-qsort-memory-corruption.patch
     ]
     /* NVCC does not support ARM intrinsics. Since <math.h> is pulled in by almost
        every HPC piece of software, without this patch CUDA compilation on ARM
diff --git a/pkgs/development/libraries/glibc/local-qsort-memory-corruption.patch b/pkgs/development/libraries/glibc/local-qsort-memory-corruption.patch
new file mode 100644
index 000000000000..f7e25c72a61c
--- /dev/null
+++ b/pkgs/development/libraries/glibc/local-qsort-memory-corruption.patch
@@ -0,0 +1,14 @@
+diff -rup a/stdlib/qsort.c b/stdlib/qsort.c
+--- a/stdlib/qsort.c	2023-07-31 10:54:16.000000000 -0700
++++ b/stdlib/qsort.c	2024-01-15 09:08:25.596167959 -0800
+@@ -224,7 +224,8 @@ _quicksort (void *const pbase, size_t to
+     while ((run_ptr += size) <= end_ptr)
+       {
+ 	tmp_ptr = run_ptr - size;
+-	while ((*cmp) ((void *) run_ptr, (void *) tmp_ptr, arg) < 0)
++	while (tmp_ptr != base_ptr
++	       && (*cmp) ((void *) run_ptr, (void *) tmp_ptr, arg) < 0)
+ 	  tmp_ptr -= size;
+ 
+ 	tmp_ptr += size;
+