*/
#include "includes.h"
-RCSID("$OpenBSD: auth2.c,v 1.106 2004/07/21 10:33:31 djm Exp $");
+RCSID("$OpenBSD: auth2.c,v 1.107 2004/07/28 09:40:29 markus Exp $");
#include "ssh2.h"
#include "xmalloc.h"
#include "dispatch.h"
#include "pathnames.h"
#include "monitor_wrap.h"
+#include "buffer.h"
#ifdef GSSAPI
#include "ssh-gss.h"
extern ServerOptions options;
extern u_char *session_id2;
extern u_int session_id2_len;
+extern Buffer loginmsg;
/* methods */
PRIVSEP(start_pam(authctxt));
#endif
} else {
- logit("input_userauth_request: illegal user %s", user);
+ logit("input_userauth_request: invalid user %s", user);
authctxt->pw = fakepw();
#ifdef USE_PAM
if (options.use_pam)
authenticated = 0;
#ifdef USE_PAM
- if (options.use_pam && authenticated && !PRIVSEP(do_pam_account()))
- authenticated = 0;
+ if (options.use_pam && authenticated) {
+ if (!PRIVSEP(do_pam_account())) {
+ authenticated = 0;
+ /* if PAM returned a message, send it to the user */
+ if (buffer_len(&loginmsg) > 0) {
+ buffer_append(&loginmsg, "\0", 1);
+ userauth_send_banner(buffer_ptr(&loginmsg));
+ buffer_clear(&loginmsg);
+ }
+ }
+ }
#endif
#ifdef _UNICOS