diff options
author | Darren Tucker <dtucker@cvs.openbsd.org> | 2003-12-31 00:24:51 +0000 |
---|---|---|
committer | Darren Tucker <dtucker@cvs.openbsd.org> | 2003-12-31 00:24:51 +0000 |
commit | 7c36d2873ce00fe3e7451951f1ab61aa163c6ec3 (patch) | |
tree | 36d20a858ed517087a0cf8540eb02f938a129fb4 | |
parent | 8a4000b758b71ba1e19e7a5c65755bcfaae7563a (diff) |
Ignore password change request during password auth (which we currently don't
support) and discard proposed new password. corrections/ok markus@
-rw-r--r-- | usr.bin/ssh/auth2-passwd.c | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/usr.bin/ssh/auth2-passwd.c b/usr.bin/ssh/auth2-passwd.c index 7a659a2e126..67d43db42e6 100644 --- a/usr.bin/ssh/auth2-passwd.c +++ b/usr.bin/ssh/auth2-passwd.c @@ -23,7 +23,7 @@ */ #include "includes.h" -RCSID("$OpenBSD: auth2-passwd.c,v 1.4 2003/08/26 09:58:43 markus Exp $"); +RCSID("$OpenBSD: auth2-passwd.c,v 1.5 2003/12/31 00:24:50 dtucker Exp $"); #include "xmalloc.h" #include "packet.h" @@ -38,16 +38,24 @@ extern ServerOptions options; static int userauth_passwd(Authctxt *authctxt) { - char *password; + char *password, *newpass; int authenticated = 0; int change; - u_int len; + u_int len, newlen; + change = packet_get_char(); - if (change) - logit("password change not supported"); password = packet_get_string(&len); + if (change) { + /* discard new password from packet */ + newpass = packet_get_string(&newlen); + memset(newpass, 0, newlen); + xfree(newpass); + } packet_check_eom(); - if (PRIVSEP(auth_password(authctxt, password)) == 1) + + if (change) + logit("password change not supported"); + else if (PRIVSEP(auth_password(authctxt, password)) == 1) authenticated = 1; memset(password, 0, len); xfree(password); |