summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordtucker@openbsd.org <dtucker@openbsd.org>2015-04-10 05:16:50 +0000
committerDamien Miller <djm@mindrot.org>2015-04-13 14:37:19 +1000
commitd8f391caef62378463a0e6b36f940170dadfe605 (patch)
tree3a080f48952021b333e34bfc4747d9d54aa52b1c
parent2c2cfe1a1c97eb9a08cc9817fd0678209680c636 (diff)
upstream commit
Don't send hostkey advertisments (hostkeys-00@openssh.com) to current versions of Tera Term as they can't handle them. Newer versions should be OK. Patch from Bryan Drewery and IWAMOTO Kouichi, ok djm@
-rw-r--r--compat.c13
-rw-r--r--compat.h3
-rw-r--r--sshd.c6
3 files changed, 19 insertions, 3 deletions
diff --git a/compat.c b/compat.c
index 2498168d7..0934de90f 100644
--- a/compat.c
+++ b/compat.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: compat.c,v 1.88 2015/04/07 23:00:42 djm Exp $ */ 1/* $OpenBSD: compat.c,v 1.89 2015/04/10 05:16:50 dtucker Exp $ */
2/* 2/*
3 * Copyright (c) 1999, 2000, 2001, 2002 Markus Friedl. All rights reserved. 3 * Copyright (c) 1999, 2000, 2001, 2002 Markus Friedl. All rights reserved.
4 * 4 *
@@ -167,6 +167,17 @@ compat_datafellows(const char *version)
167 SSH_BUG_SCANNER }, 167 SSH_BUG_SCANNER },
168 { "Probe-*", 168 { "Probe-*",
169 SSH_BUG_PROBE }, 169 SSH_BUG_PROBE },
170 { "TeraTerm SSH*,"
171 "TTSSH/1.5.*,"
172 "TTSSH/2.1*,"
173 "TTSSH/2.2*,"
174 "TTSSH/2.3*,"
175 "TTSSH/2.4*,"
176 "TTSSH/2.5*,"
177 "TTSSH/2.6*,"
178 "TTSSH/2.70*,"
179 "TTSSH/2.71*,"
180 "TTSSH/2.72*", SSH_BUG_HOSTKEYS },
170 { NULL, 0 } 181 { NULL, 0 }
171 }; 182 };
172 183
diff --git a/compat.h b/compat.h
index af2f0073f..83507f070 100644
--- a/compat.h
+++ b/compat.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: compat.h,v 1.46 2015/01/19 20:20:20 markus Exp $ */ 1/* $OpenBSD: compat.h,v 1.47 2015/04/10 05:16:50 dtucker 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.
@@ -60,6 +60,7 @@
60#define SSH_NEW_OPENSSH 0x04000000 60#define SSH_NEW_OPENSSH 0x04000000
61#define SSH_BUG_DYNAMIC_RPORT 0x08000000 61#define SSH_BUG_DYNAMIC_RPORT 0x08000000
62#define SSH_BUG_CURVE25519PAD 0x10000000 62#define SSH_BUG_CURVE25519PAD 0x10000000
63#define SSH_BUG_HOSTKEYS 0x20000000
63 64
64void enable_compat13(void); 65void enable_compat13(void);
65void enable_compat20(void); 66void enable_compat20(void);
diff --git a/sshd.c b/sshd.c
index 6aa17fa65..60b0cd4bb 100644
--- a/sshd.c
+++ b/sshd.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: sshd.c,v 1.445 2015/03/31 22:55:24 djm Exp $ */ 1/* $OpenBSD: sshd.c,v 1.446 2015/04/10 05:16:50 dtucker Exp $ */
2/* 2/*
3 * Author: Tatu Ylonen <ylo@cs.hut.fi> 3 * Author: Tatu Ylonen <ylo@cs.hut.fi>
4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -928,6 +928,10 @@ notify_hostkeys(struct ssh *ssh)
928 int i, nkeys, r; 928 int i, nkeys, r;
929 char *fp; 929 char *fp;
930 930
931 /* Some clients cannot cope with the hostkeys message, skip those. */
932 if (datafellows & SSH_BUG_HOSTKEYS)
933 return;
934
931 if ((buf = sshbuf_new()) == NULL) 935 if ((buf = sshbuf_new()) == NULL)
932 fatal("%s: sshbuf_new", __func__); 936 fatal("%s: sshbuf_new", __func__);
933 for (i = nkeys = 0; i < options.num_host_key_files; i++) { 937 for (i = nkeys = 0; i < options.num_host_key_files; i++) {