X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flibelogind%2Fsd-login%2Fsd-login.c;fp=src%2Flibelogind%2Fsd-login%2Fsd-login.c;h=5f90ba70c4121ab13fdec1077ee974b9caffab4f;hb=e9eacf18de0e1fe360469958095d9e22bc7b36b2;hp=7630e6265334f3f7d60e4248bd0b728648650faa;hpb=18b9ec874ae92e1b9b7daf91eee8b378a314f92a;p=elogind.git diff --git a/src/libelogind/sd-login/sd-login.c b/src/libelogind/sd-login/sd-login.c index 7630e6265..5f90ba70c 100644 --- a/src/libelogind/sd-login/sd-login.c +++ b/src/libelogind/sd-login/sd-login.c @@ -942,14 +942,13 @@ _public_ int sd_get_uids(uid_t **users) { } _public_ int sd_get_machine_names(char ***machines) { - char **l = NULL, **a, **b; + char **l, **a, **b; int r; - assert_return(machines, -EINVAL); - r = get_files_in_directory("/run/systemd/machines/", &l); if (r == -ENOENT) { - *machines = NULL; + if (machines) + *machines = NULL; return 0; } if (r < 0) @@ -959,7 +958,7 @@ _public_ int sd_get_machine_names(char ***machines) { r = 0; /* Filter out the unit: symlinks */ - for (a = l, b = l; *a; a++) { + for (a = b = l; *a; a++) { if (startswith(*a, "unit:") || !machine_name_is_valid(*a)) free(*a); else { @@ -972,7 +971,8 @@ _public_ int sd_get_machine_names(char ***machines) { *b = NULL; } - *machines = l; + if (machines) + *machines = l; return r; }