diff options
author | Christian Göttsche <cgzones@googlemail.com> | 2023-01-30 17:55:27 +0100 |
---|---|---|
committer | Christian Göttsche <cgzones@googlemail.com> | 2023-02-28 15:13:15 +0100 |
commit | dd733a5214fc3ef391a74e94f2c62ffa3000722b (patch) | |
tree | b48cdc2ce81979699a20417a46a36e432f9f9bce /libpam_misc/misc_conv.c | |
parent | e2d01a42c16e0d074764c3e8d2f6a2e6c0ceafc4 (diff) | |
download | pam-dd733a5214fc3ef391a74e94f2c62ffa3000722b.tar.gz pam-dd733a5214fc3ef391a74e94f2c62ffa3000722b.tar.bz2 pam-dd733a5214fc3ef391a74e94f2c62ffa3000722b.zip |
libpam_misc: make use of secure memory erasure
Diffstat (limited to 'libpam_misc/misc_conv.c')
-rw-r--r-- | libpam_misc/misc_conv.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/libpam_misc/misc_conv.c b/libpam_misc/misc_conv.c index 908ee890..dbcd6aec 100644 --- a/libpam_misc/misc_conv.c +++ b/libpam_misc/misc_conv.c @@ -17,6 +17,7 @@ #include <security/pam_appl.h> #include <security/pam_misc.h> +#include "pam_inline.h" #define INPUTSIZE PAM_MISC_CONV_BUFSIZE /* maximum length of input+1 */ #define CONV_ECHO_ON 1 /* types of echo state */ @@ -185,7 +186,7 @@ static int read_string(int echo, const char *prompt, char **retstr) int rv; if ((rv=read(STDIN_FILENO, line+nc, 1)) != 1) { if (rv < 0) { - _pam_overwrite_n(line, (unsigned int) nc); + pam_overwrite_n(line, (unsigned int) nc); nc = rv; } break; @@ -213,7 +214,7 @@ static int read_string(int echo, const char *prompt, char **retstr) line[nc] = '\0'; } *retstr = strdup(line); - _pam_overwrite(line); + pam_overwrite_array(line); if (!*retstr) { D(("no memory for response string")); nc = -1; @@ -246,7 +247,7 @@ static int read_string(int echo, const char *prompt, char **retstr) D(("the timer appears to have expired")); *retstr = NULL; - _pam_overwrite_n(line, sizeof(line)); + pam_overwrite_array(line); cleanexit: @@ -376,7 +377,7 @@ failed_conversation: switch (msgm[count]->msg_style) { case PAM_PROMPT_ECHO_ON: case PAM_PROMPT_ECHO_OFF: - _pam_overwrite(reply[count].resp); + pam_overwrite_string(reply[count].resp); free(reply[count].resp); break; case PAM_BINARY_PROMPT: |