From 4e5ec94b6725abd48676cb8954a95d9abd34970f Mon Sep 17 00:00:00 2001 From: ume Date: Mon, 4 Apr 2011 14:54:52 +0000 Subject: [PATCH] MFC r220055: getlogin() may return NULL. git-svn-id: svn://svn.freebsd.org/base/stable/8@220326 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f --- usr.bin/su/su.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/usr.bin/su/su.c b/usr.bin/su/su.c index 5dcb24a40..259c5fbfa 100644 --- a/usr.bin/su/su.c +++ b/usr.bin/su/su.c @@ -153,7 +153,7 @@ int main(int argc, char *argv[]) { static char *cleanenv; - struct passwd *pwd; + struct passwd *pwd = NULL; struct pam_conv conv = { openpam_ttyconv, NULL }; enum tristate iscsh; login_cap_t *lc; @@ -259,8 +259,9 @@ main(int argc, char *argv[]) /* get current login name, real uid and shell */ ruid = getuid(); username = getlogin(); - pwd = getpwnam(username); - if (username == NULL || pwd == NULL || pwd->pw_uid != ruid) + if (username != NULL) + pwd = getpwnam(username); + if (pwd == NULL || pwd->pw_uid != ruid) pwd = getpwuid(ruid); if (pwd == NULL) { #ifdef USE_BSM_AUDIT -- 2.45.0