]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
g_Ctoc() conversion buffers are smaller than needed up to MB_CUR_MAX - 1
authorAndrey A. Chernov <ache@FreeBSD.org>
Mon, 18 Jul 2016 20:24:13 +0000 (20:24 +0000)
committerAndrey A. Chernov <ache@FreeBSD.org>
Mon, 18 Jul 2016 20:24:13 +0000 (20:24 +0000)
commite9c0137235ff34794b3ab30bf87e60f6fe52f276
treea3d4d1a171e94873b47387ddd9163267e259f268
parentb867e84e95a6c33895d69e3b9de791e0459cb4b7
g_Ctoc() conversion buffers are smaller than needed up to MB_CUR_MAX - 1
since whole conversion needs a room for (len >= MB_CUR_MAX). It is no
difference when MB_CUR_MAX == 1, but for multi-byte locales last few chars
('\0' and before) may need just one byte, and the rest of MB_CUR_MAX - 1
space becomes unavailable in the MAXPATHLEN-sized buffer, which cause
conversion error on near MAXPATHLEN long pathes.

Increase g_Ctoc() conversion buffers to MB_LEN_MAX - 1.
lib/libc/gen/glob.c