And now, the real patch...

-- 
Nekral
Index: ChangeLog
===================================================================
--- ChangeLog	(révision 1365)
+++ ChangeLog	(révision 1366)
@@ -1,5 +1,11 @@
 2007-11-17  Nicolas François  <[EMAIL PROTECTED]>
 
+	* src/login.c: Log an error if the password entry could not be
+	found (respect LOG_UNKFAIL_ENAB to avoid logging a password). This
+	fixes the Debian bug http://bugs.debian.org/451521
+
+2007-11-17  Nicolas François  <[EMAIL PROTECTED]>
+
 	* man/useradd.8.xml: -b documenation: Use the same notation for
 	the -d argument as in the -d documentation.
 
Index: src/login.c
===================================================================
--- src/login.c	(révision 1365)
+++ src/login.c	(révision 1366)
@@ -739,17 +739,23 @@
 		    pam_get_item (pamh, PAM_USER, (const void **) &pam_user);
 		setpwent ();
 		pwd = getpwnam (pam_user);
+		if (!pwd) {
+			SYSLOG ((LOG_ERR, "getpwnam(%s) failed",
+				 getdef_bool ("LOG_UNKFAIL_ENAB") ?
+				 pam_user : "UNKNOWN"));
+			exit (1);
+		}
 
 		if (fflg) {
 			retcode = pam_acct_mgmt (pamh, 0);
 			PAM_FAIL_CHECK;
 		}
 
-		if (!pwd || setup_groups (pwd))
+		if (setup_groups (pwd)) {
 			exit (1);
-		else
-			pwent = *pwd;
 
+		pwent = *pwd;
+
 		retcode = pam_setcred (pamh, PAM_ESTABLISH_CRED);
 		PAM_FAIL_CHECK;
 

Reply via email to