summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDamien Miller <djm@mindrot.org>2007-01-05 16:26:45 +1100
committerDamien Miller <djm@mindrot.org>2007-01-05 16:26:45 +1100
commit1ec462658edd8bfea2b5cab461bb9d513e29a151 (patch)
treedf71243482d5164ffb8313c3cd5b97dbd96774c3
parentc0367fb0d25fe72328c9d0ad3ad4ec21c024115e (diff)
- djm@cvs.openbsd.org 2006/12/12 03:58:42
[channels.c compat.c compat.h] bz #1019: some ssh.com versions apparently can't cope with the remote port forwarding bind_address being a hostname, so send them an address for cases where they are not explicitly specified (wildcard or localhost bind). reported by daveroth AT acm.org; ok dtucker@ deraadt@
-rw-r--r--ChangeLog9
-rw-r--r--channels.c19
-rw-r--r--compat.c5
-rw-r--r--compat.h3
4 files changed, 26 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog
index d6e3890f1..a149b0a54 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -10,6 +10,13 @@
10 - markus@cvs.openbsd.org 2006/12/11 21:25:46 10 - markus@cvs.openbsd.org 2006/12/11 21:25:46
11 [ssh-keygen.1 ssh.1] 11 [ssh-keygen.1 ssh.1]
12 add rfc 4716 (public key format); ok jmc 12 add rfc 4716 (public key format); ok jmc
13 - djm@cvs.openbsd.org 2006/12/12 03:58:42
14 [channels.c compat.c compat.h]
15 bz #1019: some ssh.com versions apparently can't cope with the
16 remote port forwarding bind_address being a hostname, so send
17 them an address for cases where they are not explicitly
18 specified (wildcard or localhost bind). reported by daveroth AT
19 acm.org; ok dtucker@ deraadt@
13 20
1420061205 2120061205
15 - (djm) [auth.c] Fix NULL pointer dereference in fakepw(). Crash would 22 - (djm) [auth.c] Fix NULL pointer dereference in fakepw(). Crash would
@@ -2630,4 +2637,4 @@
2630 OpenServer 6 and add osr5bigcrypt support so when someone migrates 2637 OpenServer 6 and add osr5bigcrypt support so when someone migrates
2631 passwords between UnixWare and OpenServer they will still work. OK dtucker@ 2638 passwords between UnixWare and OpenServer they will still work. OK dtucker@
2632 2639
2633$Id: ChangeLog,v 1.4594 2007/01/05 05:25:46 djm Exp $ 2640$Id: ChangeLog,v 1.4595 2007/01/05 05:26:45 djm Exp $
diff --git a/channels.c b/channels.c
index 26b63a1aa..6be121970 100644
--- a/channels.c
+++ b/channels.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: channels.c,v 1.266 2006/08/29 10:40:18 djm Exp $ */ 1/* $OpenBSD: channels.c,v 1.267 2006/12/12 03:58:42 djm 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
@@ -2525,11 +2525,18 @@ channel_request_remote_forwarding(const char *listen_host, u_short listen_port,
2525 /* Send the forward request to the remote side. */ 2525 /* Send the forward request to the remote side. */
2526 if (compat20) { 2526 if (compat20) {
2527 const char *address_to_bind; 2527 const char *address_to_bind;
2528 if (listen_host == NULL) 2528 if (listen_host == NULL) {
2529 address_to_bind = "localhost"; 2529 if (datafellows & SSH_BUG_RFWD_ADDR)
2530 else if (*listen_host == '\0' || strcmp(listen_host, "*") == 0) 2530 address_to_bind = "127.0.0.1";
2531 address_to_bind = ""; 2531 else
2532 else 2532 address_to_bind = "localhost";
2533 } else if (*listen_host == '\0' ||
2534 strcmp(listen_host, "*") == 0) {
2535 if (datafellows & SSH_BUG_RFWD_ADDR)
2536 address_to_bind = "0.0.0.0";
2537 else
2538 address_to_bind = "";
2539 } else
2533 address_to_bind = listen_host; 2540 address_to_bind = listen_host;
2534 2541
2535 packet_start(SSH2_MSG_GLOBAL_REQUEST); 2542 packet_start(SSH2_MSG_GLOBAL_REQUEST);
diff --git a/compat.c b/compat.c
index da67f9410..bc1131581 100644
--- a/compat.c
+++ b/compat.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: compat.c,v 1.76 2006/08/03 03:34:42 deraadt Exp $ */ 1/* $OpenBSD: compat.c,v 1.77 2006/12/12 03:58:42 djm 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 *
@@ -133,7 +133,8 @@ compat_datafellows(const char *version)
133 { "2.3.*", SSH_BUG_DEBUG|SSH_BUG_RSASIGMD5| 133 { "2.3.*", SSH_BUG_DEBUG|SSH_BUG_RSASIGMD5|
134 SSH_BUG_FIRSTKEX }, 134 SSH_BUG_FIRSTKEX },
135 { "2.4", SSH_OLD_SESSIONID }, /* Van Dyke */ 135 { "2.4", SSH_OLD_SESSIONID }, /* Van Dyke */
136 { "2.*", SSH_BUG_DEBUG|SSH_BUG_FIRSTKEX }, 136 { "2.*", SSH_BUG_DEBUG|SSH_BUG_FIRSTKEX|
137 SSH_BUG_RFWD_ADDR },
137 { "3.0.*", SSH_BUG_DEBUG }, 138 { "3.0.*", SSH_BUG_DEBUG },
138 { "3.0 SecureCRT*", SSH_OLD_SESSIONID }, 139 { "3.0 SecureCRT*", SSH_OLD_SESSIONID },
139 { "1.7 SecureFX*", SSH_OLD_SESSIONID }, 140 { "1.7 SecureFX*", SSH_OLD_SESSIONID },
diff --git a/compat.h b/compat.h
index 83d469d53..4d8ebc908 100644
--- a/compat.h
+++ b/compat.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: compat.h,v 1.40 2006/03/25 22:22:43 djm Exp $ */ 1/* $OpenBSD: compat.h,v 1.41 2006/12/12 03:58:42 djm 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.
@@ -56,6 +56,7 @@
56#define SSH_BUG_PROBE 0x00400000 56#define SSH_BUG_PROBE 0x00400000
57#define SSH_BUG_FIRSTKEX 0x00800000 57#define SSH_BUG_FIRSTKEX 0x00800000
58#define SSH_OLD_FORWARD_ADDR 0x01000000 58#define SSH_OLD_FORWARD_ADDR 0x01000000
59#define SSH_BUG_RFWD_ADDR 0x02000000
59 60
60void enable_compat13(void); 61void enable_compat13(void);
61void enable_compat20(void); 62void enable_compat20(void);