summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/locale/localectl.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/locale/localectl.c b/src/locale/localectl.c
index 5328ac41a5..095d7f7d3f 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();