summaryrefslogtreecommitdiffstats
path: root/login-utils/su.c
diff options
context:
space:
mode:
Diffstat (limited to 'login-utils/su.c')
-rw-r--r--login-utils/su.c6
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