]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
newgrp: move shell determination closer where it is used
authorSami Kerola <kerolasa@iki.fi>
Sat, 20 Dec 2014 12:26:17 +0000 (12:26 +0000)
committerSami Kerola <kerolasa@iki.fi>
Mon, 5 Jan 2015 22:53:01 +0000 (22:53 +0000)
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
login-utils/newgrp.c

index 3f5c720286936c34a172ce5b436fede0f0cc2d67..0fae08766e2f25e32ac454e32a6749d1dc93d5b1 100644 (file)
@@ -202,9 +202,6 @@ int main(int argc, char *argv[])
        if (!(pw_entry = getpwuid(getuid())))
                err(EXIT_FAILURE, _("who are you?"));
 
-       shell = (pw_entry->pw_shell && *pw_entry->pw_shell ?
-                               pw_entry->pw_shell : _PATH_BSHELL);
-
        if (argc < 2) {
                if (setgid(pw_entry->pw_gid) < 0)
                        err(EXIT_FAILURE, _("setgid failed"));
@@ -225,8 +222,9 @@ int main(int argc, char *argv[])
        if (setuid(getuid()) < 0)
                err(EXIT_FAILURE, _("setuid failed"));
 
-       fflush(stdout);
-       fflush(stderr);
+       fflush(NULL);
+       shell = (pw_entry->pw_shell && *pw_entry->pw_shell ?
+                               pw_entry->pw_shell : _PATH_BSHELL);
        execl(shell, shell, (char *)0);
        warn(_("failed to execute %s"), shell);
        fflush(stderr);