init: allow initgroups to fail
authorAlan Cox <alan@linux.intel.com>
Sat, 9 Apr 2016 16:01:23 +0000 (17:01 +0100)
committerAlan Cox <alan@linux.intel.com>
Sat, 9 Apr 2016 16:01:23 +0000 (17:01 +0100)
Applications/util/init.c

index c5631c7..5dd0d68 100644 (file)
@@ -743,8 +743,10 @@ static void spawn_login(struct passwd *pwd, const char *tty, const char *id)
        /* Don't leak utmp into the child */
        endutent();
 
-       if (initgroups(pwd->pw_name, pwd->pw_gid) == -1 && errno != ENOSYS)
-               exit(255);
+       /* We don't care if initgroups fails - it only grants extra rights */
+       initgroups(pwd->pw_name, pwd->pw_gid);
+
+       /* But we do care if these fail! */
        if (setgid(pwd->pw_gid) == -1 ||
                setuid(pwd->pw_uid) == -1)
                        _exit(255);