- djm@cvs.openbsd.org 2008/01/19 23:02:40
     [channels.c]
     When we added support for specified bind addresses for port forwards, we
     added a quirk SSH_OLD_FORWARD_ADDR. There is a bug in our handling of
     this for -L port forwards that causes the client to listen on both v4
     and v6 addresses when connected to a server with this quirk, despite
     having set 0.0.0.0 as a bind_address.
     report and patch from Jan.Pechanec AT Sun.COM; ok dtucker@
diff --git a/channels.c b/channels.c
index 25ebe12..c766cc2 100644
--- a/channels.c
+++ b/channels.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: channels.c,v 1.271 2007/12/27 14:22:08 dtucker Exp $ */
+/* $OpenBSD: channels.c,v 1.272 2008/01/19 23:02:40 djm Exp $ */
 /*
  * Author: Tatu Ylonen <ylo@cs.hut.fi>
  * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -2385,7 +2385,7 @@
 			wildcard = 1;
 	} else if (gateway_ports || is_client) {
 		if (((datafellows & SSH_OLD_FORWARD_ADDR) &&
-		    strcmp(listen_addr, "0.0.0.0") == 0) ||
+		    strcmp(listen_addr, "0.0.0.0") == 0 && is_client == 0) ||
 		    *listen_addr == '\0' || strcmp(listen_addr, "*") == 0 ||
 		    (!is_client && gateway_ports == 1))
 			wildcard = 1;