--- musl-1.1.16/src/locale/setlocale.c 2017-03-17 17:49:15.767952411 +0000 +++ musl-1.1.16/src/locale/setlocale.c 2017-03-17 17:49:15.767952411 +0000 @@ -48,16 +48,30 @@ } } char *s = buf; - for (i=0; iname : "C"; - size_t l = strlen(part); - memcpy(s, part, l); - s[l] = ';'; - s += l+1; + if (lm != flm) break; + i++; + } while (iname : "C"; + } else { + for (i=0; iname : "C"; + size_t l = strlen(part); + memcpy(s, part, l); + s[l] = ';'; + s += l+1; + } + *--s = 0; } - *--s = 0; UNLOCK(lock); return buf; }