diff options
author | 2002-03-19 14:27:39 +0000 | |
---|---|---|
committer | 2002-03-19 14:27:39 +0000 | |
commit | bfc0626000be55a09fac155437d1db229aad5a88 (patch) | |
tree | 163b1c6a7b50c4bfd9852cc200b28b0143c74adf /usr.bin/ssh/auth1.c | |
parent | sync (diff) | |
download | wireguard-openbsd-bfc0626000be55a09fac155437d1db229aad5a88.tar.xz wireguard-openbsd-bfc0626000be55a09fac155437d1db229aad5a88.zip |
make getpwnamallow() allways call pwcopy()
Diffstat (limited to 'usr.bin/ssh/auth1.c')
-rw-r--r-- | usr.bin/ssh/auth1.c | 22 |
1 files changed, 6 insertions, 16 deletions
diff --git a/usr.bin/ssh/auth1.c b/usr.bin/ssh/auth1.c index 3252cb182ca..9e8d11086f6 100644 --- a/usr.bin/ssh/auth1.c +++ b/usr.bin/ssh/auth1.c @@ -10,7 +10,7 @@ */ #include "includes.h" -RCSID("$OpenBSD: auth1.c,v 1.38 2002/03/18 17:50:31 provos Exp $"); +RCSID("$OpenBSD: auth1.c,v 1.39 2002/03/19 14:27:39 markus Exp $"); #include "xmalloc.h" #include "rsa.h" @@ -24,7 +24,6 @@ RCSID("$OpenBSD: auth1.c,v 1.38 2002/03/18 17:50:31 provos Exp $"); #include "auth.h" #include "channels.h" #include "session.h" -#include "misc.h" #include "uidswap.h" #include "monitor_wrap.h" @@ -323,7 +322,6 @@ Authctxt * do_authentication(void) { Authctxt *authctxt; - struct passwd *pw = NULL, *pwent; u_int ulen; char *p, *user, *style = NULL; @@ -346,28 +344,20 @@ do_authentication(void) authctxt->style = style; /* Verify that the user is a valid user. */ - pwent = PRIVSEP(getpwnamallow(user)); - if (pwent) { + if ((authctxt->pw = PRIVSEP(getpwnamallow(user))) != NULL) authctxt->valid = 1; - pw = pwcopy(pwent); - } else { + else debug("do_authentication: illegal user %s", user); - pw = NULL; - } - /* Free memory */ - if (use_privsep && pwent != NULL) - pwfree(pwent); - - authctxt->pw = pw; - setproctitle("%s%s", pw ? user : "unknown", + setproctitle("%s%s", authctxt->pw ? user : "unknown", use_privsep ? " [net]" : ""); /* * If we are not running as root, the user must have the same uid as * the server. */ - if (!use_privsep && getuid() != 0 && pw && pw->pw_uid != getuid()) + if (!use_privsep && getuid() != 0 && authctxt->pw && + authctxt->pw->pw_uid != getuid()) packet_disconnect("Cannot change user when server not running as root."); /* |