From: Lennart Poettering Date: Wed, 10 Apr 2013 21:21:53 +0000 (+0200) Subject: localctl: skip locale entries with non-UTF8 names X-Git-Tag: v202~161 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=0affed79d2e30013f07cb94e6f07e3fcb81c02fa;p=elogind.git localctl: skip locale entries with non-UTF8 names glibc should place these in the locale archive. For now, let's just skip them from our output, since they are aliases anyway. https://bugs.freedesktop.org/show_bug.cgi?id=63389 --- diff --git a/src/locale/localectl.c b/src/locale/localectl.c index 5328ac41a..095d7f7d3 100644 --- a/src/locale/localectl.c +++ b/src/locale/localectl.c @@ -37,6 +37,7 @@ #include "pager.h" #include "set.h" #include "path-util.h" +#include "utf8.h" static bool arg_no_pager = false; static enum transport { @@ -359,6 +360,9 @@ static int add_locales_from_archive(Set *locales) { if (e[i].locrec_offset == 0) continue; + if (!utf8_is_valid((char*) p + e[i].name_offset)) + continue; + z = strdup((char*) p + e[i].name_offset); if (!z) { r = log_oom();