diff options
Diffstat (limited to 'auth-pam.c')
-rw-r--r-- | auth-pam.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/auth-pam.c b/auth-pam.c index 0446cd559..787aad1d0 100644 --- a/auth-pam.c +++ b/auth-pam.c | |||
@@ -47,7 +47,7 @@ | |||
47 | 47 | ||
48 | /* Based on $FreeBSD: src/crypto/openssh/auth2-pam-freebsd.c,v 1.11 2003/03/31 13:48:18 des Exp $ */ | 48 | /* Based on $FreeBSD: src/crypto/openssh/auth2-pam-freebsd.c,v 1.11 2003/03/31 13:48:18 des Exp $ */ |
49 | #include "includes.h" | 49 | #include "includes.h" |
50 | RCSID("$Id: auth-pam.c,v 1.126 2005/07/17 07:18:50 djm Exp $"); | 50 | RCSID("$Id: auth-pam.c,v 1.127 2005/09/28 12:33:27 dtucker Exp $"); |
51 | 51 | ||
52 | #ifdef USE_PAM | 52 | #ifdef USE_PAM |
53 | #if defined(HAVE_SECURITY_PAM_APPL_H) | 53 | #if defined(HAVE_SECURITY_PAM_APPL_H) |
@@ -716,8 +716,18 @@ sshpam_query(void *ctx, char **name, char **info, | |||
716 | plen++; | 716 | plen++; |
717 | xfree(msg); | 717 | xfree(msg); |
718 | break; | 718 | break; |
719 | case PAM_SUCCESS: | ||
720 | case PAM_AUTH_ERR: | 719 | case PAM_AUTH_ERR: |
720 | debug3("PAM: PAM_AUTH_ERR"); | ||
721 | if (**prompts != NULL && strlen(**prompts) != 0) { | ||
722 | *info = **prompts; | ||
723 | **prompts = NULL; | ||
724 | *num = 0; | ||
725 | **echo_on = 0; | ||
726 | ctxt->pam_done = -1; | ||
727 | return 0; | ||
728 | } | ||
729 | /* FALLTHROUGH */ | ||
730 | case PAM_SUCCESS: | ||
721 | if (**prompts != NULL) { | 731 | if (**prompts != NULL) { |
722 | /* drain any accumulated messages */ | 732 | /* drain any accumulated messages */ |
723 | debug("PAM: %s", **prompts); | 733 | debug("PAM: %s", **prompts); |