aboutsummaryrefslogtreecommitdiff
path: root/libbb/correct_password.c
diff options
context:
space:
mode:
Diffstat (limited to 'libbb/correct_password.c')
-rw-r--r--libbb/correct_password.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/libbb/correct_password.c b/libbb/correct_password.c
index d39a5839c..5727c65fb 100644
--- a/libbb/correct_password.c
+++ b/libbb/correct_password.c
@@ -30,6 +30,15 @@
30 30
31#include "libbb.h" 31#include "libbb.h"
32 32
33void FAST_FUNC nuke_str(char *str)
34{
35 if (str) {
36 while (*str)
37 *str++ = 0;
38 /* or: memset(str, 0, strlen(str)); - not as small as above */
39 }
40}
41
33/* Ask the user for a password. 42/* Ask the user for a password.
34 * Return 1 without asking if PW has an empty password. 43 * Return 1 without asking if PW has an empty password.
35 * Return -1 on EOF, error while reading input, or timeout. 44 * Return -1 on EOF, error while reading input, or timeout.
@@ -76,7 +85,7 @@ int FAST_FUNC ask_and_check_password_extended(const struct passwd *pw,
76 encrypted = pw_encrypt(unencrypted, correct, 1); 85 encrypted = pw_encrypt(unencrypted, correct, 1);
77 r = (strcmp(encrypted, correct) == 0); 86 r = (strcmp(encrypted, correct) == 0);
78 free(encrypted); 87 free(encrypted);
79 memset(unencrypted, 0, strlen(unencrypted)); 88 nuke_str(unencrypted);
80 return r; 89 return r;
81} 90}
82 91