[systemd-commits] src/sysusers

Kay Sievers kay at kemper.freedesktop.org
Thu Jun 12 18:33:04 PDT 2014


 src/sysusers/sysusers.c |   13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

New commits:
commit c1b6b04f0e90bbbce589b40db7c58ae2a64976eb
Author: Kay Sievers <kay at vrfy.org>
Date:   Fri Jun 13 03:26:41 2014 +0200

    sysusers: do not set todo to create a user when we only need a group

diff --git a/src/sysusers/sysusers.c b/src/sysusers/sysusers.c
index 53ff950..514e77e 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;



More information about the systemd-commits mailing list