X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Flogind.c;h=a081501a8cefce1da2a0c324ef7556fc66765bb8;hp=f96ace2315734b4dcd99b14a2d8c6f015cc369e6;hb=ddd88763921a1534081ed28e36f6712a85449005;hpb=034a2a52ac0ec83e0229941d635d310b23eb04df diff --git a/src/logind.c b/src/logind.c index f96ace231..a081501a8 100644 --- a/src/logind.c +++ b/src/logind.c @@ -509,19 +509,19 @@ int manager_enumerate_users(Manager *m) { } while ((de = readdir(d))) { - unsigned long ul; + uid_t uid; User *u; if (!dirent_is_file(de)) continue; - k = safe_atolu(de->d_name, &ul); + k = parse_uid(de->d_name, &uid); if (k < 0) { log_error("Failed to parse file name %s: %s", de->d_name, strerror(-k)); continue; } - u = hashmap_get(m->users, ULONG_TO_PTR(ul)); + u = hashmap_get(m->users, ULONG_TO_PTR(uid)); if (!u) { unlinkat(dirfd(d), de->d_name, 0); continue;