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, 8 insertions, 3 deletions
diff --git a/libbb/correct_password.c b/libbb/correct_password.c
index 6255f7e65..d0f68c0cd 100644
--- a/libbb/correct_password.c
+++ b/libbb/correct_password.c
@@ -47,9 +47,14 @@ int correct_password(const struct passwd *pw)
47 char buffer[256]; 47 char buffer[256];
48#endif 48#endif
49 49
50 correct = bb_msg_full_version; /* fake salt. crypt() can choke otherwise */ 50 /* fake salt. crypt() can choke otherwise.
51 if (!pw) 51 * (bb_banner's first two chars are letters and thus are valid salt) */
52 goto fake_it; /* The content of 'correct' will never match */ 52 correct = bb_banner;
53 if (!pw) {
54 /* bb_banner will never match, it contains () which is never
55 * generated in valid encrypted passwords. */
56 goto fake_it;
57 }
53 correct = pw->pw_passwd; 58 correct = pw->pw_passwd;
54#if ENABLE_FEATURE_SHADOWPASSWDS 59#if ENABLE_FEATURE_SHADOWPASSWDS
55 if (LONE_CHAR(pw->pw_passwd, 'x') || LONE_CHAR(pw->pw_passwd, '*')) { 60 if (LONE_CHAR(pw->pw_passwd, 'x') || LONE_CHAR(pw->pw_passwd, '*')) {