diff options
author | Damien Miller <djm@mindrot.org> | 2007-01-05 16:26:45 +1100 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2007-01-05 16:26:45 +1100 |
commit | 1ec462658edd8bfea2b5cab461bb9d513e29a151 (patch) | |
tree | df71243482d5164ffb8313c3cd5b97dbd96774c3 | |
parent | c0367fb0d25fe72328c9d0ad3ad4ec21c024115e (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-- | ChangeLog | 9 | ||||
-rw-r--r-- | channels.c | 19 | ||||
-rw-r--r-- | compat.c | 5 | ||||
-rw-r--r-- | compat.h | 3 |
4 files changed, 26 insertions, 10 deletions
@@ -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 | ||
14 | 20061205 | 21 | 20061205 |
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); |
@@ -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 }, |
@@ -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 | ||
60 | void enable_compat13(void); | 61 | void enable_compat13(void); |
61 | void enable_compat20(void); | 62 | void enable_compat20(void); |