dryang / rpms / systemd

Forked from rpms/systemd a year ago
Clone
Blob Blame History Raw
From c10efc8164dcdf8596315ce98f60405f8c2e17c0 Mon Sep 17 00:00:00 2001
From: Yu Watanabe <watanabe.yu+github@gmail.com>
Date: Tue, 14 Jun 2022 09:05:00 +0900
Subject: [PATCH] locale-util: check if enumerated locales are valid

(cherry picked from commit a2f7937747f12634d93049f645cdae88f89ff233)

Related: #2087652
---
 src/basic/locale-util.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/src/basic/locale-util.c b/src/basic/locale-util.c
index abbebc7666..bd36cdd1cd 100644
--- a/src/basic/locale-util.c
+++ b/src/basic/locale-util.c
@@ -199,6 +199,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;