diff options
Diffstat (limited to 'source3/passdb/pass_check.c')
-rw-r--r-- | source3/passdb/pass_check.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/source3/passdb/pass_check.c b/source3/passdb/pass_check.c index 59fc9e2eac..7426bfcbe3 100644 --- a/source3/passdb/pass_check.c +++ b/source3/passdb/pass_check.c @@ -682,12 +682,11 @@ match is found and is used to update the encrypted password file return True on correct match, False otherwise ****************************************************************************/ -BOOL pass_check(char *user, char *password, int pwlen, - BOOL (*fn) (char *, char *)) +BOOL pass_check(struct passwd *pass, char *user, char *password, int pwlen, + BOOL (*fn) (char *, char *), BOOL run_cracker) { pstring pass2; int level = lp_passwordlevel(); - struct passwd *pass = NULL; if (password) password[pwlen] = 0; @@ -702,8 +701,6 @@ BOOL pass_check(char *user, char *password, int pwlen, if (((!*password) || (!pwlen)) && !lp_null_passwords()) return (False); - pass = Get_Pwnam(user, True); - #ifdef WITH_PAM /* @@ -819,6 +816,10 @@ BOOL pass_check(char *user, char *password, int pwlen, return (True); } + if (!run_cracker) { + return False; + } + /* if the password was given to us with mixed case then we don't need to proceed as we know it hasn't been case modified by the client */ |