walters / rpms / pam

Forked from rpms/pam 5 years ago
Clone
a37d2c7
diff -up Linux-PAM-1.0.1/modules/pam_unix/pam_unix_passwd.c.prompts Linux-PAM-1.0.1/modules/pam_unix/pam_unix_passwd.c
a37d2c7
--- Linux-PAM-1.0.1/modules/pam_unix/pam_unix_passwd.c.prompts	2008-02-29 16:22:03.000000000 +0100
a37d2c7
+++ Linux-PAM-1.0.1/modules/pam_unix/pam_unix_passwd.c	2008-04-24 13:27:29.000000000 +0200
a37d2c7
@@ -699,6 +699,10 @@ PAM_EXTERN int pam_sm_chauthtok(pam_hand
a37d2c7
 				pass_new = NULL;
a37d2c7
 			}
a37d2c7
 			retval = _pam_unix_approve_pass(pamh, ctrl, pass_old, pass_new);
a37d2c7
+			
a37d2c7
+			if (retval != PAM_SUCCESS && off(UNIX_NOT_SET_PASS, ctrl)) {
a37d2c7
+				pam_set_item(pamh, PAM_AUTHTOK, NULL);
a37d2c7
+			}
a37d2c7
 		}
a37d2c7
 
a37d2c7
 		if (retval != PAM_SUCCESS) {
a37d2c7
diff -up Linux-PAM-1.0.1/modules/pam_unix/support.c.prompts Linux-PAM-1.0.1/modules/pam_unix/support.c
a37d2c7
--- Linux-PAM-1.0.1/modules/pam_unix/support.c.prompts	2008-01-23 16:35:13.000000000 +0100
a37d2c7
+++ Linux-PAM-1.0.1/modules/pam_unix/support.c	2008-04-24 14:49:21.000000000 +0200
a37d2c7
@@ -743,11 +743,11 @@ int _unix_read_password(pam_handle_t * p
a37d2c7
 			return retval;
a37d2c7
 		} else if (*pass != NULL) {	/* we have a password! */
a37d2c7
 			return PAM_SUCCESS;
a37d2c7
-		} else if (on(UNIX_USE_FIRST_PASS, ctrl)) {
a37d2c7
-			return PAM_AUTHTOK_RECOVERY_ERR;	  /* didn't work */
a37d2c7
 		} else if (on(UNIX_USE_AUTHTOK, ctrl)
a37d2c7
 			   && off(UNIX__OLD_PASSWD, ctrl)) {
a37d2c7
 			return PAM_AUTHTOK_ERR;
a37d2c7
+		} else if (on(UNIX_USE_FIRST_PASS, ctrl)) {
a37d2c7
+			return PAM_AUTHTOK_RECOVERY_ERR;	  /* didn't work */
a37d2c7
 		}
a37d2c7
 	}
a37d2c7
 	/*