Hi, On Tue, Aug 16, 2011 at 1:19 AM, Arnaud Lacombe <lacombar@xxxxxxxxx> wrote: > There is a few calls in kconfig where we end-up using tolower(3) or toupper(3) > in an unsafe manner. As highlighted by Serdar, it would seem that Turkish's > locale do not have representable lowercase for the Engligh capital-dotless-i. > > Introduces locale-safe portion in the backend where we reset the local to the > default "C". > > Reported-by: Serdar KÖYLÜ <s.koylux@xxxxxxxxx> > Signed-off-by: Arnaud Lacombe <lacombar@xxxxxxxxx> > This is not a perfect solution as we might writing stuff on the console on those protected range, but that's a start. - Arnaud > --- > scripts/kconfig/confdata.c | 10 ++++++++++ > 1 files changed, 10 insertions(+), 0 deletions(-) > > diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c > index 5a58965..7b1bbb8 100644 > --- a/scripts/kconfig/confdata.c > +++ b/scripts/kconfig/confdata.c > @@ -828,6 +828,8 @@ static int conf_split_config(void) > if (chdir("include/config")) > return 1; > > + setlocale(LC_ALL, "C"); > + > res = 0; > for_all_symbols(i, sym) { > sym_calc_value(sym); > @@ -918,6 +920,9 @@ static int conf_split_config(void) > } > close(fd); > } > + > + setlocale(LC_ALL, ""); > + > out: > if (chdir("../..")) > return 1; > @@ -956,6 +961,8 @@ int conf_write_autoconf(void) > return 1; > } > > + setlocale(LC_ALL, "C"); > + > conf_write_heading(out, &kconfig_printer_cb, NULL); > > conf_write_heading(tristate, &tristate_printer_cb, NULL); > @@ -979,6 +986,9 @@ int conf_write_autoconf(void) > > conf_write_symbol(out_h, sym, &header_printer_cb, NULL); > } > + > + setlocale(LC_ALL, ""); > + > fclose(out); > fclose(tristate); > fclose(out_h); > -- > 1.7.6.153.g78432 > > -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html