svn commit: r220327 - stable/7/usr.bin/su

Hajimu UMEMOTO ume at FreeBSD.org
Mon Apr 4 14:57:29 UTC 2011


Author: ume
Date: Mon Apr  4 14:57:28 2011
New Revision: 220327
URL: http://svn.freebsd.org/changeset/base/220327

Log:
  MFC r220055: getlogin() may return NULL.

Modified:
  stable/7/usr.bin/su/su.c
Directory Properties:
  stable/7/usr.bin/su/   (props changed)

Modified: stable/7/usr.bin/su/su.c
==============================================================================
--- stable/7/usr.bin/su/su.c	Mon Apr  4 14:54:52 2011	(r220326)
+++ stable/7/usr.bin/su/su.c	Mon Apr  4 14:57:28 2011	(r220327)
@@ -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;
@@ -258,8 +258,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


More information about the svn-src-stable-7 mailing list