locale-util: fix memleak on failure

This commit is contained in:
Yu Watanabe
2022-06-14 20:56:23 +09:00
parent 39f4546199
commit 065058e63b
+5 -2
View File
@@ -160,7 +160,7 @@ static int add_locales_from_archive(Set *locales) {
return r;
}
static int add_locales_from_libdir (Set *locales) {
static int add_locales_from_libdir(Set *locales) {
_cleanup_closedir_ DIR *dir = NULL;
int r;
@@ -187,7 +187,7 @@ static int add_locales_from_libdir (Set *locales) {
}
int get_locales(char ***ret) {
_cleanup_set_free_ Set *locales = NULL;
_cleanup_set_free_free_ Set *locales = NULL;
_cleanup_strv_free_ char **l = NULL;
int r;
@@ -207,6 +207,9 @@ int get_locales(char ***ret) {
if (!l)
return -ENOMEM;
/* Now, all elements are owned by strv 'l'. Hence, do not call set_free_free(). */
locales = set_free(locales);
r = getenv_bool("SYSTEMD_LIST_NON_UTF8_LOCALES");
if (r == -ENXIO || r == 0) {
char **a, **b;