aboutsummaryrefslogtreecommitdiff
path: root/libpam_misc/misc_conv.c
diff options
context:
space:
mode:
authorChristian Göttsche <cgzones@googlemail.com>2023-01-30 17:55:27 +0100
committerChristian Göttsche <cgzones@googlemail.com>2023-02-28 15:13:15 +0100
commitdd733a5214fc3ef391a74e94f2c62ffa3000722b (patch)
treeb48cdc2ce81979699a20417a46a36e432f9f9bce /libpam_misc/misc_conv.c
parente2d01a42c16e0d074764c3e8d2f6a2e6c0ceafc4 (diff)
downloadpam-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.c9
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: