fix return value of wcs{,n}cmp for extreme wchar_t values
[musl] / src / string / wcsncmp.c
index 4ab32a9..2b3558b 100644 (file)
@@ -3,5 +3,5 @@
 int wcsncmp(const wchar_t *l, const wchar_t *r, size_t n)
 {
        for (; n && *l==*r && *l && *r; n--, l++, r++);
-       return n ? *l - *r : 0;
+       return n ? (*l < *r ? -1 : *l > *r) : 0;
 }