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;