Date: Sun, 27 Mar 2011 12:53:20 +0000 (UTC) From: Hajimu UMEMOTO <ume@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r220055 - head/usr.bin/su Message-ID: <201103271253.p2RCrK6h058676@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: ume Date: Sun Mar 27 12:53:20 2011 New Revision: 220055 URL: http://svn.freebsd.org/changeset/base/220055 Log: getpwnam(3) may return NULL. Requested by: nork Reviewed by: Takeharu KATO <takeharu1219__at__ybb.ne.jp>, nork MFC after: 1 week Modified: head/usr.bin/su/su.c Modified: head/usr.bin/su/su.c ============================================================================== --- head/usr.bin/su/su.c Sun Mar 27 10:35:39 2011 (r220054) +++ head/usr.bin/su/su.c Sun Mar 27 12:53:20 2011 (r220055) @@ -149,7 +149,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; @@ -255,8 +255,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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201103271253.p2RCrK6h058676>