aboutsummaryrefslogtreecommitdiff
path: root/modules/pam_unix/pam_unix_passwd.c
diff options
context:
space:
mode:
Diffstat (limited to 'modules/pam_unix/pam_unix_passwd.c')
-rw-r--r--modules/pam_unix/pam_unix_passwd.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/modules/pam_unix/pam_unix_passwd.c b/modules/pam_unix/pam_unix_passwd.c
index 3a223949..b915ce66 100644
--- a/modules/pam_unix/pam_unix_passwd.c
+++ b/modules/pam_unix/pam_unix_passwd.c
@@ -350,7 +350,7 @@ static int check_old_password(const char *forwho, const char *newpass)
if (opwfile == NULL)
return PAM_ABORT;
- while (getline(&buf, &n, opwfile) != -1) {
+ for (; getline(&buf, &n, opwfile) != -1; pam_overwrite_n(buf, n)) {
if (!strncmp(buf, forwho, len) && (buf[len] == ':' ||
buf[len] == ',')) {
char *sptr;
@@ -372,6 +372,7 @@ static int check_old_password(const char *forwho, const char *newpass)
break;
}
}
+ pam_overwrite_n(buf, n);
free(buf);
fclose(opwfile);