summaryrefslogtreecommitdiff
path: root/src/sysusers/sysusers.c
diff options
context:
space:
mode:
authorKay Sievers <kay@vrfy.org>2014-06-13 03:26:41 +0200
committerKay Sievers <kay@vrfy.org>2014-06-13 03:28:54 +0200
commitc1b6b04f0e90bbbce589b40db7c58ae2a64976eb (patch)
tree2e577589f66c342ce41b7cd93c33525317d6b207 /src/sysusers/sysusers.c
parentf268f57f6344d3a2ccf447352ff3ed1313c4a199 (diff)
sysusers: do not set todo to create a user when we only need a group
Diffstat (limited to 'src/sysusers/sysusers.c')
-rw-r--r--src/sysusers/sysusers.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/sysusers/sysusers.c b/src/sysusers/sysusers.c
index 53ff9509d8..514e77e447 100644
--- a/src/sysusers/sysusers.c
+++ b/src/sysusers/sysusers.c
@@ -53,7 +53,8 @@ typedef struct Item {
bool gid_set:1;
bool uid_set:1;
- bool todo:1;
+ bool todo_user:1;
+ bool todo_group:1;
} Item;
static char *arg_root = NULL;
@@ -279,7 +280,7 @@ static int write_files(void) {
* duplicate entries. */
i = hashmap_get(groups, gr->gr_name);
- if (i && i->todo) {
+ if (i && i->todo_group) {
r = -EEXIST;
goto finish;
}
@@ -345,7 +346,7 @@ static int write_files(void) {
while ((pw = fgetpwent(original))) {
i = hashmap_get(users, pw->pw_name);
- if (i && i->todo) {
+ if (i && i->todo_user) {
r = -EEXIST;
goto finish;
}
@@ -573,7 +574,7 @@ static int add_user(Item *i) {
z = hashmap_get(database_user, i->name);
if (z) {
log_debug("User %s already exists.", i->name);
- i->uid = PTR_TO_GID(z);
+ i->uid = PTR_TO_UID(z);
i->uid_set = true;
return 0;
}
@@ -691,7 +692,7 @@ static int add_user(Item *i) {
if (r < 0)
return log_oom();
- i->todo = true;
+ i->todo_user = true;
log_info("Creating user %s (%s) with uid " UID_FMT " and gid " GID_FMT ".", i->name, strna(i->description), i->uid, i->gid);
return 0;
@@ -844,7 +845,7 @@ static int add_group(Item *i) {
if (r < 0)
return log_oom();
- i->todo = true;
+ i->todo_group = true;
log_info("Creating group %s with gid " GID_FMT ".", i->name, i->gid);
return 0;