diff options
| author | Alex Richardson <arichardson@FreeBSD.org> | 2021-06-16 15:27:13 +0000 |
|---|---|---|
| committer | Alex Richardson <arichardson@FreeBSD.org> | 2021-06-16 15:27:13 +0000 |
| commit | 1a2f06d0f2905c9a18340b377cbbe772f2ca6844 (patch) | |
| tree | de52227a1ff5ebaa95692c636fd2b0ff1fc4bf21 /contrib/libc-vis | |
| parent | bc6a2267fffeafd3946637607a74cfd639398f9d (diff) | |
Diffstat (limited to 'contrib/libc-vis')
| -rw-r--r-- | contrib/libc-vis/vis.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/contrib/libc-vis/vis.c b/contrib/libc-vis/vis.c index 21c07b70619d..c43186a44b51 100644 --- a/contrib/libc-vis/vis.c +++ b/contrib/libc-vis/vis.c @@ -465,7 +465,8 @@ istrsenvisx(char **mbdstp, size_t *dlen, const char *mbsrc, size_t mblength, while (mbslength > 0) { /* Convert one multibyte character to wchar_t. */ if (!cerr) - clen = mbrtowc(src, mbsrc, MB_LEN_MAX, &mbstate); + clen = mbrtowc(src, mbsrc, MIN(mbslength, MB_LEN_MAX), + &mbstate); if (cerr || clen < 0) { /* Conversion error, process as a byte instead. */ *src = (wint_t)(u_char)*mbsrc; |
