summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBen Lindstrom <mouring@eviladmin.org>2002-04-10 18:22:09 +0200
committerBen Lindstrom <mouring@eviladmin.org>2002-04-10 18:22:09 +0200
commitc8226387944156fdc609d31537bc2f196028d667 (patch)
tree16d478546afc760502beb364af39541c72a21052
parent - markus@cvs.openbsd.org 2002/04/10 08:21:47 (diff)
downloadopenssh-c8226387944156fdc609d31537bc2f196028d667.tar.xz
openssh-c8226387944156fdc609d31537bc2f196028d667.zip
- 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. <sigh>
-rw-r--r--auth1.c14
-rw-r--r--compat.c10
-rw-r--r--compat.h3
3 files changed, 19 insertions, 8 deletions
diff --git a/auth1.c b/auth1.c
index 55dbf78fa..c2a8936ae 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 8671e641b..406b47c25 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 3fb0f9799..7afca0460 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);