File: local-qsort-memory-corruption.patch

package info (click to toggle)
glibc 2.36-9%2Bdeb12u13
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bookworm-proposed-updates
  • size: 300,148 kB
  • sloc: ansic: 1,055,755; asm: 324,942; makefile: 15,198; python: 12,603; sh: 10,884; cpp: 5,685; awk: 1,883; perl: 518; yacc: 292; pascal: 182; sed: 39
file content (13 lines) | stat: -rw-r--r-- 498 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
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;