diff options
Diffstat (limited to 'login-utils/su.c')
-rw-r--r-- | login-utils/su.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/login-utils/su.c b/login-utils/su.c index dda02fe09..bd3c5b808 100644 --- a/login-utils/su.c +++ b/login-utils/su.c @@ -530,8 +530,10 @@ main (int argc, char **argv) error (1, 0, _("user %s does not exist"), new_user); endpwent (); - /* make sure pw->pw_shell is non-zero */ - if (pw->pw_shell == 0 || pw->pw_shell[0] == 0) + /* Make sure pw->pw_shell is non-NULL. It may be NULL when NEW_USER + is a username that is retrieved via NIS (YP), but that doesn't have + a default shell listed. */ + if (pw->pw_shell == NULL || pw->pw_shell[0] == '\0') pw->pw_shell = (char *) DEFAULT_SHELL; /* Make a copy of the password information and point pw at the local |