about summary refs log tree commit diff
path: root/src/internal
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2017-03-21 12:13:59 -0400
committerRich Felker <dalias@aerifal.cx>2017-03-21 12:19:47 -0400
commite6917eced2cc841fe3dfd9c04deec9202f9e34f3 (patch)
treeb4821f8a8a3655a421bc4b066053b2858a181537 /src/internal
parente4fc9ad780e36c84e1ed6b0fc01b3c53ae65ff9d (diff)
downloadmusl-e6917eced2cc841fe3dfd9c04deec9202f9e34f3.tar.gz
musl-e6917eced2cc841fe3dfd9c04deec9202f9e34f3.tar.xz
musl-e6917eced2cc841fe3dfd9c04deec9202f9e34f3.zip
increase limit on locale name length from 15 to 23 bytes
the old limit was one byte too short to support locale names of the
form xx_XX.UTF-8@modifier where modifier is more than 3 bytes, a form
which various real-world locale names take. the problem could be
avoided by omitting the useless ".UTF-8" part, but users may need to
have it present when operating on mixed-libc systems or when it will
be carried over (e.g. across ssh) to other systems.

the new limit is chosen sufficient for existing/reasonable locale
names while still keeping the size of setlocale's static buffer small.

also add locale_impl.h to the Makefile's list of headers which force
rebuild of source files, to prevent dangerously inconsistent object
files from getting used after this change.
Diffstat (limited to 'src/internal')
-rw-r--r--src/internal/locale_impl.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/internal/locale_impl.h b/src/internal/locale_impl.h
index f5e4d9b4..d5a3cc94 100644
--- a/src/internal/locale_impl.h
+++ b/src/internal/locale_impl.h
@@ -6,7 +6,7 @@
 #include "libc.h"
 #include "pthread_impl.h"
 
-#define LOCALE_NAME_MAX 15
+#define LOCALE_NAME_MAX 23
 
 struct __locale_map {
 	const void *map;