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