diff options
-rw-r--r-- | source3/pam_smbpass/general.h | 1 | ||||
-rw-r--r-- | source3/pam_smbpass/pam_smb_passwd.c | 17 | ||||
-rw-r--r-- | source3/pam_smbpass/support.c | 5 |
3 files changed, 7 insertions, 16 deletions
diff --git a/source3/pam_smbpass/general.h b/source3/pam_smbpass/general.h index 4607620c29..f6b3e672ae 100644 --- a/source3/pam_smbpass/general.h +++ b/source3/pam_smbpass/general.h @@ -118,7 +118,6 @@ static const SMB_Ctrls smb_args[SMB_CTRLS_] = { * to authenticate themself. */ -#define FAIL_PREFIX "-SMB-FAIL-" #define SMB_MAX_RETRIES 3 struct _pam_failed_auth { diff --git a/source3/pam_smbpass/pam_smb_passwd.c b/source3/pam_smbpass/pam_smb_passwd.c index 473a55e065..8fc2cf3e14 100644 --- a/source3/pam_smbpass/pam_smb_passwd.c +++ b/source3/pam_smbpass/pam_smb_passwd.c @@ -176,17 +176,12 @@ int pam_sm_chauthtok(pam_handle_t *pamh, int flags, if (getuid() != 0 && !(flags & PAM_CHANGE_EXPIRED_AUTHTOK)) { /* tell user what is happening */ -#define greeting "Changing password for " - Announce = SMB_MALLOC_ARRAY(char, sizeof(greeting)+strlen(user)); - if (Announce == NULL) { - _log_err(pamh, LOG_CRIT, "password: out of memory"); - TALLOC_FREE(sampass); - CatchSignal(SIGPIPE, oldsig_handler); - return PAM_BUF_ERR; - } - strncpy( Announce, greeting, sizeof(greeting) ); - strncpy( Announce+sizeof(greeting)-1, user, strlen(user)+1 ); -#undef greeting + if (asprintf(&Announce, "Changing password for %s", user) == -1) { + _log_err(pamh, LOG_CRIT, "password: out of memory"); + TALLOC_FREE(sampass); + CatchSignal(SIGPIPE, oldsig_handler); + return PAM_BUF_ERR; + } set( SMB__OLD_PASSWD, ctrl ); retval = _smb_read_password( pamh, ctrl, Announce, "Current SMB password: ", diff --git a/source3/pam_smbpass/support.c b/source3/pam_smbpass/support.c index 4215c72991..79f92a8758 100644 --- a/source3/pam_smbpass/support.c +++ b/source3/pam_smbpass/support.c @@ -379,13 +379,10 @@ int _smb_verify_password( pam_handle_t * pamh, struct samu *sampass, } } - data_name = SMB_MALLOC_ARRAY(char, sizeof(FAIL_PREFIX) + strlen( name )); - if (data_name == NULL) { + if (asprintf(&data_name, "-SMB-FAIL- %s", name) == -1) { _log_err(pamh, LOG_CRIT, "no memory for data-name" ); return PAM_AUTH_ERR; } - strncpy( data_name, FAIL_PREFIX, sizeof(FAIL_PREFIX) ); - strncpy( data_name + sizeof(FAIL_PREFIX) - 1, name, strlen( name ) + 1 ); /* * The password we were given wasn't an encrypted password, or it |