X-Git-Url: http://andersk.mit.edu/gitweb/openssh.git/blobdiff_plain/b7ccb05193219287dc2082a9e336e487acc32bad..b8dc87d3feda0eb7c5f8dc5a13ae8442951e8044:/auth1.c diff --git a/auth1.c b/auth1.c index 31034262..4d623717 100644 --- a/auth1.c +++ b/auth1.c @@ -10,7 +10,7 @@ */ #include "includes.h" -RCSID("$OpenBSD: auth1.c,v 1.15 2001/02/07 22:35:45 markus Exp $"); +RCSID("$OpenBSD: auth1.c,v 1.18 2001/02/22 21:59:43 markus Exp $"); #include "xmalloc.h" #include "rsa.h" @@ -23,6 +23,7 @@ RCSID("$OpenBSD: auth1.c,v 1.15 2001/02/07 22:35:45 markus Exp $"); #include "compat.h" #include "auth.h" #include "session.h" +#include "misc.h" /* import */ extern ServerOptions options; @@ -92,7 +93,7 @@ do_authloop(Authctxt *authctxt) #elif defined(HAVE_OSF_SIA) 0) { #else - auth_password(pw, "")) { + auth_password(authctxt, "")) { #endif auth_log(authctxt, 1, "without authentication", ""); return; @@ -262,7 +263,7 @@ do_authloop(Authctxt *authctxt) password); #else /* !USE_PAM && !HAVE_OSF_SIA */ /* Try authentication with the password. */ - authenticated = auth_password(pw, password); + authenticated = auth_password(authctxt, password); #endif /* USE_PAM */ memset(password, 0, strlen(password)); @@ -303,6 +304,12 @@ do_authloop(Authctxt *authctxt) log("Unknown message during authentication: type %d", type); break; } +#ifdef BSD_AUTH + if (authctxt->as) { + auth_close(authctxt->as); + authctxt->as = NULL; + } +#endif if (!authctxt->valid && authenticated) fatal("INTERNAL ERROR: authenticated invalid user %s", authctxt->user); @@ -316,7 +323,8 @@ do_authloop(Authctxt *authctxt) } #else /* Special handling for root */ - if (authenticated && authctxt->pw->pw_uid == 0 && !auth_root_allowed()) + if (authenticated && authctxt->pw->pw_uid == 0 && + !auth_root_allowed(get_authname(type))) authenticated = 0; #endif #ifdef USE_PAM @@ -377,8 +385,6 @@ do_authentication() authctxt->user = user; authctxt->style = style; - setproctitle("%s", user); - /* Verify that the user is a valid user. */ pw = getpwnam(user); if (pw && allowed_user(pw)) { @@ -390,6 +396,8 @@ do_authentication() } authctxt->pw = pw; + setproctitle("%s", pw ? user : "unknown"); + #ifdef USE_PAM if (pw) start_pam(user);