aboutsummaryrefslogtreecommitdiff
path: root/modules/pam_unix/unix_update.c
diff options
context:
space:
mode:
authorSam Hartman <hartmans@debian.org>2024-02-27 21:25:44 -0700
committerSam Hartman <hartmans@debian.org>2024-02-27 21:25:44 -0700
commit58c5a173ca608476917893e9054cf3d53d0b0744 (patch)
treec5d2ab69a993c150f48f705bff9d76c1139f1e33 /modules/pam_unix/unix_update.c
parent80d000dd6637be445a9a0fd930de765cc40352da (diff)
parent56cd5768b32fd97a7156977dcbbd40715e158e9c (diff)
downloadpam-58c5a173ca608476917893e9054cf3d53d0b0744.tar.gz
pam-58c5a173ca608476917893e9054cf3d53d0b0744.tar.bz2
pam-58c5a173ca608476917893e9054cf3d53d0b0744.zip
Merge in 1.5.3 from experimental
Diffstat (limited to 'modules/pam_unix/unix_update.c')
-rw-r--r--modules/pam_unix/unix_update.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/modules/pam_unix/unix_update.c b/modules/pam_unix/unix_update.c
index 3559972b..49a70ff3 100644
--- a/modules/pam_unix/unix_update.c
+++ b/modules/pam_unix/unix_update.c
@@ -55,15 +55,18 @@ set_password(const char *forwho, const char *shadow, const char *remember)
if (npass != 2) { /* is it a valid password? */
if (npass == 1) {
helper_log_err(LOG_DEBUG, "no new password supplied");
- memset(pass, '\0', PAM_MAX_RESP_SIZE);
+ pam_overwrite_array(pass);
} else {
helper_log_err(LOG_DEBUG, "no valid passwords supplied");
}
return PAM_AUTHTOK_ERR;
}
- if (lock_pwdf() != PAM_SUCCESS)
+ if (lock_pwdf() != PAM_SUCCESS) {
+ pam_overwrite_array(pass);
+ pam_overwrite_array(towhat);
return PAM_AUTHTOK_LOCK_BUSY;
+ }
pwd = getpwnam(forwho);
@@ -98,8 +101,8 @@ set_password(const char *forwho, const char *shadow, const char *remember)
}
done:
- memset(pass, '\0', PAM_MAX_RESP_SIZE);
- memset(towhat, '\0', PAM_MAX_RESP_SIZE);
+ pam_overwrite_array(pass);
+ pam_overwrite_array(towhat);
unlock_pwdf();