chiark / gitweb /
update TODO
[elogind.git] / src / locale / localectl.c
index 5328ac41a5b704d289d40da338d5a81d35307602..eb94d13ad5b7104c2306e314ea36d9409ec38720 100644 (file)
@@ -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();
@@ -623,7 +627,7 @@ static int list_x11_keymaps(DBusConnection *bus, char **args, unsigned n) {
                 return -EINVAL;
         }
 
-        f = fopen("/usr/share/X11/xkb/rules/xorg.lst", "re");
+        f = fopen("/usr/share/X11/xkb/rules/base.lst", "re");
         if (!f) {
                 log_error("Failed to open keyboard mapping list. %m");
                 return -errno;