problem with X11 forwarding and use_localhost on Linux (solution)
Kevin Steves
kevin at atomicgears.com
Fri Apr 26 03:09:40 EST 2002
On Tue, 23 Apr 2002, Stig Venaas wrote:
:On Linux (and others that define DONT_TRY_OTHER_AF)
:x11_create_display_inet() will only use the first entry returned by
:getaddrinfo(). When binding sockets to "ANY" this is fine on Linux
:since a PF_INET6 socket bound to ANY will also include IPv4. However
:when x11_use_localhost (X11UseLocalhost) is set, this is a problem.
:getaddrinfo() will then return an AF_INET6 entry with IPv6 address
:::1 and also AF_INET entry with IPv4 address 127.0.0.1. Currently
:one binds only to the first (unless that bind fails), but should
:bind to both. Even on Linux, a bind to ::1 does not include
:127.0.0.1.
:
:I think this can be fixed with the following patch:
:
:--- channels-orig.c Tue Mar 26 04:26:25 2002
:+++ channels.c Tue Apr 23 15:09:28 2002
:@@ -2392,7 +2392,8 @@
: if (num_socks == NUM_SOCKS)
: break;
: #else
:- break;
:+ if (!x11_use_localhost || num_socks == NUM_SOCKS)
:+ break;
: #endif
: }
: freeaddrinfo(aitop);
this is what is in:
http://bugzilla.mindrot.org/show_bug.cgi?id=164
i still don't understand exactly why DONT_TRY_OTHER_AF is needed?
More information about the openssh-unix-dev
mailing list