chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
util: make use of get_user_creds() and get_group_creds() wherever applicable
[elogind.git]
/
src
/
logind.c
diff --git
a/src/logind.c
b/src/logind.c
index a081501a8cefce1da2a0c324ef7556fc66765bb8..8b99065b23f6c5c6aaa335d819df9ff58c68b289 100644
(file)
--- a/
src/logind.c
+++ b/
src/logind.c
@@
-239,17
+239,18
@@
int manager_add_user(Manager *m, uid_t uid, gid_t gid, const char *name, User **
}
int manager_add_user_by_name(Manager *m, const char *name, User **_user) {
}
int manager_add_user_by_name(Manager *m, const char *name, User **_user) {
- struct passwd *p;
+ uid_t uid;
+ gid_t gid;
+ int r;
assert(m);
assert(name);
assert(m);
assert(name);
- errno = 0;
- p = getpwnam(name);
- if (!p)
- return errno ? -errno : -ENOENT;
+ r = get_user_creds(&name, &uid, &gid, NULL);
+ if (r < 0)
+ return r;
- return manager_add_user(m,
p->pw_uid, p->pw_
gid, name, _user);
+ return manager_add_user(m,
uid,
gid, name, _user);
}
int manager_add_user_by_uid(Manager *m, uid_t uid, User **_user) {
}
int manager_add_user_by_uid(Manager *m, uid_t uid, User **_user) {