libc/string/strxfrm_l.c contains the following lines: /* Handle the pushed elements now. */ size_t backw; for (backw = idxcnt - 1; backw >= backw_stop; --backw) If backw_stop is 0. the end test never fails. This never happens in practice because localedef is broken (see BZ#645) and stores a single order_start forward;forward;forward;forward,position rule, and hence the backward directive is never processed. But this bug arises when the patch sent to BZ#645 is applied.
Created attachment 495 [details] Proposed patch to fix loops when backw_stop is 0
The patch is everything but optimal. If fixed it differently.