diff options
author | Darren Tucker <dtucker@zip.com.au> | 2004-06-30 20:34:31 +1000 |
---|---|---|
committer | Darren Tucker <dtucker@zip.com.au> | 2004-06-30 20:34:31 +1000 |
commit | 59e06026d721661c477ff5eccc36918665a9ef01 (patch) | |
tree | 889a51548493ac97ff42e2313353b69f7f3257f7 /auth-pam.c | |
parent | 5288cb242aeea747dba400997c376035578a8445 (diff) |
- (dtucker) [auth-pam.c] Check for buggy PAM modules that return a NULL
appdata_ptr to the conversation function. ok djm@
By rights we should free the messages too, but if this happens then one
of the modules has already proven itself to be buggy so can we trust
the messages?
Diffstat (limited to 'auth-pam.c')
-rw-r--r-- | auth-pam.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/auth-pam.c b/auth-pam.c index 56c8d889f..cad89e14f 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.107 2004/06/19 02:54:38 dtucker Exp $"); | 50 | RCSID("$Id: auth-pam.c,v 1.108 2004/06/30 10:34:32 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) |
@@ -275,6 +275,10 @@ sshpam_thread_conv(int n, const struct pam_message **msg, | |||
275 | debug3("PAM: %s entering, %d messages", __func__, n); | 275 | debug3("PAM: %s entering, %d messages", __func__, n); |
276 | *resp = NULL; | 276 | *resp = NULL; |
277 | 277 | ||
278 | if (data == NULL) { | ||
279 | error("PAM: conversation function passed a null context"); | ||
280 | return (PAM_CONV_ERR); | ||
281 | } | ||
278 | ctxt = data; | 282 | ctxt = data; |
279 | if (n <= 0 || n > PAM_MAX_NUM_MSG) | 283 | if (n <= 0 || n > PAM_MAX_NUM_MSG) |
280 | return (PAM_CONV_ERR); | 284 | return (PAM_CONV_ERR); |