diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/glibc/local-qsort-memory-corruption.patch')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/glibc/local-qsort-memory-corruption.patch | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/glibc/local-qsort-memory-corruption.patch b/nixpkgs/pkgs/development/libraries/glibc/local-qsort-memory-corruption.patch new file mode 100644 index 000000000000..f7e25c72a61c --- /dev/null +++ b/nixpkgs/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; + |