summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Lindstrom <mouring@eviladmin.org>2002-04-10 16:22:09 +0000
committerBen Lindstrom <mouring@eviladmin.org>2002-04-10 16:22:09 +0000
commitc8226387944156fdc609d31537bc2f196028d667 (patch)
tree16d478546afc760502beb364af39541c72a21052
parentb5115eaf804b6137da2ceb58a603b1ec9b93e9af (diff)
- 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 @@
10 */ 10 */
11 11
12#include "includes.h" 12#include "includes.h"
13RCSID("$OpenBSD: auth1.c,v 1.39 2002/03/19 14:27:39 markus Exp $"); 13RCSID("$OpenBSD: auth1.c,v 1.40 2002/04/10 08:21:47 markus Exp $");
14 14
15#include "xmalloc.h" 15#include "xmalloc.h"
16#include "rsa.h" 16#include "rsa.h"
@@ -345,7 +345,7 @@ do_authentication(void)
345{ 345{
346 Authctxt *authctxt; 346 Authctxt *authctxt;
347 u_int ulen; 347 u_int ulen;
348 char *p, *user, *style = NULL; 348 char *user, *style = NULL;
349 349
350 /* Get the name of the user that we wish to log in as. */ 350 /* Get the name of the user that we wish to log in as. */
351 packet_read_expect(SSH_CMSG_USER); 351 packet_read_expect(SSH_CMSG_USER);
@@ -357,9 +357,15 @@ do_authentication(void)
357 if ((style = strchr(user, ':')) != NULL) 357 if ((style = strchr(user, ':')) != NULL)
358 *style++ = '\0'; 358 *style++ = '\0';
359 359
360#ifdef KRB5
360 /* XXX - SSH.com Kerberos v5 braindeath. */ 361 /* XXX - SSH.com Kerberos v5 braindeath. */
361 if ((p = strchr(user, '@')) != NULL) 362 if ((datafellows & SSH_BUG_K5USER) &&
362 *p = '\0'; 363 options.kerberos_authentication) {
364 char *p;
365 if ((p = strchr(user, '@')) != NULL)
366 *p = '\0';
367 }
368#endif
363 369
364 authctxt = authctxt_new(); 370 authctxt = authctxt_new();
365 authctxt->user = user; 371 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 @@
23 */ 23 */
24 24
25#include "includes.h" 25#include "includes.h"
26RCSID("$OpenBSD: compat.c,v 1.62 2002/03/25 21:13:51 markus Exp $"); 26RCSID("$OpenBSD: compat.c,v 1.63 2002/04/10 08:21:47 markus Exp $");
27 27
28#include "buffer.h" 28#include "buffer.h"
29#include "packet.h" 29#include "packet.h"
@@ -127,8 +127,12 @@ compat_datafellows(const char *version)
127 "1.2.19*," 127 "1.2.19*,"
128 "1.2.20*," 128 "1.2.20*,"
129 "1.2.21*," 129 "1.2.21*,"
130 "1.2.22*", SSH_BUG_IGNOREMSG }, 130 "1.2.22*", SSH_BUG_IGNOREMSG|SSH_BUG_K5USER },
131 { "1.3.2*", SSH_BUG_IGNOREMSG }, /* f-secure */ 131 { "1.3.2*", /* F-Secure */
132 SSH_BUG_IGNOREMSG|SSH_BUG_K5USER },
133 { "1.2.1*,"
134 "1.2.2*,"
135 "1.2.3*", SSH_BUG_K5USER },
132 { "*SSH Compatible Server*", /* Netscreen */ 136 { "*SSH Compatible Server*", /* Netscreen */
133 SSH_BUG_PASSWORDPAD }, 137 SSH_BUG_PASSWORDPAD },
134 { "*OSU_0*," 138 { "*OSU_0*,"
diff --git a/compat.h b/compat.h
index 3fb0f9799..7afca0460 100644
--- a/compat.h
+++ b/compat.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: compat.h,v 1.31 2002/03/25 21:13:51 markus Exp $ */ 1/* $OpenBSD: compat.h,v 1.32 2002/04/10 08:21:47 markus Exp $ */
2 2
3/* 3/*
4 * Copyright (c) 1999, 2000, 2001 Markus Friedl. All rights reserved. 4 * Copyright (c) 1999, 2000, 2001 Markus Friedl. All rights reserved.
@@ -53,6 +53,7 @@
53#define SSH_BUG_DERIVEKEY 0x00040000 53#define SSH_BUG_DERIVEKEY 0x00040000
54#define SSH_BUG_DUMMYCHAN 0x00100000 54#define SSH_BUG_DUMMYCHAN 0x00100000
55#define SSH_BUG_EXTEOF 0x00200000 55#define SSH_BUG_EXTEOF 0x00200000
56#define SSH_BUG_K5USER 0x00400000
56 57
57void enable_compat13(void); 58void enable_compat13(void);
58void enable_compat20(void); 59void enable_compat20(void);