]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
sysusers: use fgetgrent_sane()
authorYu Watanabe <watanabe.yu+github@gmail.com>
Sun, 25 Nov 2018 19:41:53 +0000 (04:41 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Sun, 2 Dec 2018 11:18:54 +0000 (12:18 +0100)
src/sysusers/sysusers.c

index c2326ee9b81f852aab416dfef1bc7376fe93424e..3eb70f5e8fad6e0382f9556ff8cffca108218269 100644 (file)
@@ -140,8 +140,7 @@ static int load_group_database(void) {
         if (r < 0)
                 return r;
 
-        errno = 0;
-        while ((gr = fgetgrent(f))) {
+        while ((r = fgetgrent_sane(f, &gr)) > 0) {
                 char *n;
                 int k, q;
 
@@ -164,13 +163,8 @@ static int load_group_database(void) {
 
                 if (k <= 0 && q <= 0)
                         free(n);
-
-                errno = 0;
         }
-        if (!IN_SET(errno, 0, ENOENT))
-                return -errno;
-
-        return 0;
+        return r;
 }
 
 static int make_backup(const char *target, const char *x) {