From e6917eced2cc841fe3dfd9c04deec9202f9e34f3 Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Tue, 21 Mar 2017 12:13:59 -0400 Subject: [PATCH] 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. --- Makefile | 2 +- src/internal/locale_impl.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 8246b78f..d2e89979 100644 --- a/Makefile +++ b/Makefile @@ -35,7 +35,7 @@ AOBJS = $(LIBC_OBJS) LOBJS = $(LIBC_OBJS:.o=.lo) GENH = obj/include/bits/alltypes.h obj/include/bits/syscall.h GENH_INT = obj/src/internal/version.h -IMPH = $(addprefix $(srcdir)/, src/internal/stdio_impl.h src/internal/pthread_impl.h src/internal/libc.h) +IMPH = $(addprefix $(srcdir)/, src/internal/stdio_impl.h src/internal/pthread_impl.h src/internal/locale_impl.h src/internal/libc.h) LDFLAGS = LDFLAGS_AUTO = 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; -- 2.25.1