]> andersk Git - openssh.git/commitdiff
- markus@cvs.openbsd.org 2008/09/11 14:22:37
authordjm <djm>
Mon, 3 Nov 2008 08:20:10 +0000 (08:20 +0000)
committerdjm <djm>
Mon, 3 Nov 2008 08:20:10 +0000 (08:20 +0000)
     [compat.c compat.h nchan.c ssh.c]
     only send eow and no-more-sessions requests to openssh 5 and newer;
     fixes interop problems with broken ssh v2 implementations; ok djm@

ChangeLog
compat.c
compat.h
nchan.c
ssh.c

index 33233eec2f6c113323896c52544f76c157592b82..f60591bfd08387d4a68555adc89e60266f74c0f4 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
      OpenSSL 0.9.8h supplies a real EVP_sha256 so we do not need our
      replacement anymore
      (ID sync only for portable - we still need this)
+   - markus@cvs.openbsd.org 2008/09/11 14:22:37
+     [compat.c compat.h nchan.c ssh.c]
+     only send eow and no-more-sessions requests to openssh 5 and newer;
+     fixes interop problems with broken ssh v2 implementations; ok djm@
 
 20080906
  - (dtucker) [config.guess config.sub] Update to latest versions from
index bc113158144bef3a0dda64a8664e5c87956d79f1..df3541df70efbd5412b85be6eb4c5cf537b7736d 100644 (file)
--- a/compat.c
+++ b/compat.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: compat.c,v 1.77 2006/12/12 03:58:42 djm Exp $ */
+/* $OpenBSD: compat.c,v 1.78 2008/09/11 14:22:37 markus Exp $ */
 /*
  * Copyright (c) 1999, 2000, 2001, 2002 Markus Friedl.  All rights reserved.
  *
@@ -91,7 +91,8 @@ compat_datafellows(const char *version)
                  "OpenSSH_3.1*",       SSH_BUG_EXTEOF|SSH_OLD_FORWARD_ADDR},
                { "OpenSSH_3.*",        SSH_OLD_FORWARD_ADDR },
                { "Sun_SSH_1.0*",       SSH_BUG_NOREKEY|SSH_BUG_EXTEOF},
-               { "OpenSSH*",           0 },
+               { "OpenSSH_4*",         0 },
+               { "OpenSSH*",           SSH_NEW_OPENSSH },
                { "*MindTerm*",         0 },
                { "2.1.0*",             SSH_BUG_SIGBLOB|SSH_BUG_HMAC|
                                        SSH_OLD_SESSIONID|SSH_BUG_DEBUG|
index 4d8ebc908a425891fe3ed7a7c6c5c2797389afaf..16cf282a7aecea6d8a7ccf6c19029775d25e5fb3 100644 (file)
--- a/compat.h
+++ b/compat.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: compat.h,v 1.41 2006/12/12 03:58:42 djm Exp $ */
+/* $OpenBSD: compat.h,v 1.42 2008/09/11 14:22:37 markus Exp $ */
 
 /*
  * Copyright (c) 1999, 2000, 2001 Markus Friedl.  All rights reserved.
@@ -57,6 +57,7 @@
 #define SSH_BUG_FIRSTKEX       0x00800000
 #define SSH_OLD_FORWARD_ADDR   0x01000000
 #define SSH_BUG_RFWD_ADDR      0x02000000
+#define SSH_NEW_OPENSSH                0x04000000
 
 void     enable_compat13(void);
 void     enable_compat20(void);
diff --git a/nchan.c b/nchan.c
index e0ebf43f151c74ba7049c2199f89dee62a13f52e..b78d6a76485c762a4bcd10f6a3dae8c0f483d756 100644 (file)
--- a/nchan.c
+++ b/nchan.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: nchan.c,v 1.60 2008/06/30 12:16:02 djm Exp $ */
+/* $OpenBSD: nchan.c,v 1.61 2008/09/11 14:22:37 markus Exp $ */
 /*
  * Copyright (c) 1999, 2000, 2001, 2002 Markus Friedl.  All rights reserved.
  *
@@ -387,6 +387,8 @@ chan_send_eow2(Channel *c)
                    c->self);
                return;
        }
+       if (!(datafellows & SSH_NEW_OPENSSH))
+               return;
        packet_start(SSH2_MSG_CHANNEL_REQUEST);
        packet_put_int(c->remote_id);
        packet_put_cstring("eow@openssh.com");
diff --git a/ssh.c b/ssh.c
index e2dd67d688bdad9a74c94180a03bf5b50da3314f..a91d886cec61531eed18fde9896ead104eb08b3d 100644 (file)
--- a/ssh.c
+++ b/ssh.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ssh.c,v 1.318 2008/07/02 13:47:39 djm Exp $ */
+/* $OpenBSD: ssh.c,v 1.319 2008/09/11 14:22:37 markus Exp $ */
 /*
  * Author: Tatu Ylonen <ylo@cs.hut.fi>
  * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -1200,7 +1200,8 @@ ssh_session2(void)
                id = ssh_session2_open();
 
        /* If we don't expect to open a new session, then disallow it */
-       if (options.control_master == SSHCTL_MASTER_NO) {
+       if (options.control_master == SSHCTL_MASTER_NO &&
+           (datafellows & SSH_NEW_OPENSSH)) {
                debug("Requesting no-more-sessions@openssh.com");
                packet_start(SSH2_MSG_GLOBAL_REQUEST);
                packet_put_cstring("no-more-sessions@openssh.com");
This page took 0.099922 seconds and 5 git commands to generate.