From: Alexey Izbyshev Date: Fri, 26 May 2023 16:34:14 +0000 (+0300) Subject: mbrtowc: Fix wrong return value when n > UINT_MAX X-Git-Url: http://nsz.repo.hu/git/?p=musl;a=commitdiff_plain;h=4653b98711f280270fa049654460610f587ba7b4 mbrtowc: Fix wrong return value when n > UINT_MAX mbrtowc truncates n to unsigned int when storing its copy. If n > UINT_MAX and the locale is not POSIX, the function will return a wrong value greater than UINT_MAX on the success path. --- diff --git a/src/multibyte/mbrtowc.c b/src/multibyte/mbrtowc.c index c94819e7..7824997e 100644 --- a/src/multibyte/mbrtowc.c +++ b/src/multibyte/mbrtowc.c @@ -8,7 +8,7 @@ size_t mbrtowc(wchar_t *restrict wc, const char *restrict src, size_t n, mbstate static unsigned internal_state; unsigned c; const unsigned char *s = (const void *)src; - const unsigned N = n; + const size_t N = n; wchar_t dummy; if (!st) st = (void *)&internal_state;