diff options
author | Darren Tucker <dtucker@zip.com.au> | 2005-09-28 22:33:27 +1000 |
---|---|---|
committer | Darren Tucker <dtucker@zip.com.au> | 2005-09-28 22:33:27 +1000 |
commit | 7b1e69584611837d58f2651ec4e90210e1b26afe (patch) | |
tree | 76434cb868d3f98682c3b66590a5c3fb606e6cf9 /auth-pam.c | |
parent | 46e7ba5d53b13787f56402910e0b8e8f5c2248b3 (diff) |
- (dtucker) [auth-pam.c] Bug #1028: send final non-query messages from
PAM via keyboard-interactive. Patch tested by the folks at Vintela.
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); |