qsort: fix leonardo heap corruption from bug in doubleword ctz primitive
the pntz function, implementing a "count trailing zeros" variant for a bit vector consisting of two size_t words, erroneously returned zero rather than the number of bits in the low word when the first bit set was the low bit of the high word. as a result, a loop in the trinkle function which should have a guaranteed small bound on the number of iterations, could run unboundedly, thereby overflowing a stack-based working-space array which was sized for the bound. CVE-2026-40200 has been assigned for this issue.
R
Rich Felker committed
228da39e38c1cae13cbe637e771412c1984dba5d
Parent: d2f20c4