From f8d99a32cf838ab5ee8289d6c6c43c738a073bd8 Mon Sep 17 00:00:00 2001 From: mouring Date: Wed, 10 Apr 2002 16:22:09 +0000 Subject: [PATCH] - markus@cvs.openbsd.org 2002/04/10 08:21:47 [auth1.c compat.c compat.h] strip '@' from username only for KerbV and known broken clients, bug #204 Don't mind me.. I just commited a changelog with no patch. --- auth1.c | 14 ++++++++++---- compat.c | 10 +++++++--- compat.h | 3 ++- 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/auth1.c b/auth1.c index 55dbf78f..c2a8936a 100644 --- a/auth1.c +++ b/auth1.c @@ -10,7 +10,7 @@ */ #include "includes.h" -RCSID("$OpenBSD: auth1.c,v 1.39 2002/03/19 14:27:39 markus Exp $"); +RCSID("$OpenBSD: auth1.c,v 1.40 2002/04/10 08:21:47 markus Exp $"); #include "xmalloc.h" #include "rsa.h" @@ -345,7 +345,7 @@ do_authentication(void) { Authctxt *authctxt; u_int ulen; - char *p, *user, *style = NULL; + char *user, *style = NULL; /* Get the name of the user that we wish to log in as. */ packet_read_expect(SSH_CMSG_USER); @@ -357,9 +357,15 @@ do_authentication(void) if ((style = strchr(user, ':')) != NULL) *style++ = '\0'; +#ifdef KRB5 /* XXX - SSH.com Kerberos v5 braindeath. */ - if ((p = strchr(user, '@')) != NULL) - *p = '\0'; + if ((datafellows & SSH_BUG_K5USER) && + options.kerberos_authentication) { + char *p; + if ((p = strchr(user, '@')) != NULL) + *p = '\0'; + } +#endif authctxt = authctxt_new(); authctxt->user = user; diff --git a/compat.c b/compat.c index 8671e641..406b47c2 100644 --- a/compat.c +++ b/compat.c @@ -23,7 +23,7 @@ */ #include "includes.h" -RCSID("$OpenBSD: compat.c,v 1.62 2002/03/25 21:13:51 markus Exp $"); +RCSID("$OpenBSD: compat.c,v 1.63 2002/04/10 08:21:47 markus Exp $"); #include "buffer.h" #include "packet.h" @@ -127,8 +127,12 @@ compat_datafellows(const char *version) "1.2.19*," "1.2.20*," "1.2.21*," - "1.2.22*", SSH_BUG_IGNOREMSG }, - { "1.3.2*", SSH_BUG_IGNOREMSG }, /* f-secure */ + "1.2.22*", SSH_BUG_IGNOREMSG|SSH_BUG_K5USER }, + { "1.3.2*", /* F-Secure */ + SSH_BUG_IGNOREMSG|SSH_BUG_K5USER }, + { "1.2.1*," + "1.2.2*," + "1.2.3*", SSH_BUG_K5USER }, { "*SSH Compatible Server*", /* Netscreen */ SSH_BUG_PASSWORDPAD }, { "*OSU_0*," diff --git a/compat.h b/compat.h index 3fb0f979..7afca046 100644 --- a/compat.h +++ b/compat.h @@ -1,4 +1,4 @@ -/* $OpenBSD: compat.h,v 1.31 2002/03/25 21:13:51 markus Exp $ */ +/* $OpenBSD: compat.h,v 1.32 2002/04/10 08:21:47 markus Exp $ */ /* * Copyright (c) 1999, 2000, 2001 Markus Friedl. All rights reserved. @@ -53,6 +53,7 @@ #define SSH_BUG_DERIVEKEY 0x00040000 #define SSH_BUG_DUMMYCHAN 0x00100000 #define SSH_BUG_EXTEOF 0x00200000 +#define SSH_BUG_K5USER 0x00400000 void enable_compat13(void); void enable_compat20(void); -- 2.45.1