]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
locale-util: check if enumerated locales are valid
authorYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 14 Jun 2022 00:05:00 +0000 (09:05 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 14 Jun 2022 11:56:23 +0000 (20:56 +0900)
src/basic/locale-util.c

index 3fce1a55f6126b870165610c9bbd188cbf526b1b..bcbf9412297ba408f6eb1bae1ec6d186c1691f4d 100644 (file)
@@ -203,6 +203,15 @@ int get_locales(char ***ret) {
         if (r < 0)
                 return r;
 
+        char *locale;
+        SET_FOREACH(locale, locales) {
+                r = locale_is_installed(locale);
+                if (r < 0)
+                        return r;
+                if (r == 0)
+                        free(set_remove(locales, locale));
+        }
+
         l = set_get_strv(locales);
         if (!l)
                 return -ENOMEM;