mirror of
https://github.com/systemd/systemd
synced 2024-10-15 04:24:19 +00:00
locale-util: fix memleak on failure
This commit is contained in:
parent
39f4546199
commit
065058e63b
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue