diff options
Diffstat (limited to 'backport-openssh-8.2p1-x11-without-ipv6.patch')
-rw-r--r-- | backport-openssh-8.2p1-x11-without-ipv6.patch | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/backport-openssh-8.2p1-x11-without-ipv6.patch b/backport-openssh-8.2p1-x11-without-ipv6.patch new file mode 100644 index 0000000..a0eaec2 --- /dev/null +++ b/backport-openssh-8.2p1-x11-without-ipv6.patch @@ -0,0 +1,31 @@ +diff --git a/channels.c b/channels.c +--- a/channels.c ++++ b/channels.c +Reference:https://src.fedoraproject.org/rpms/openssh/blob/rawhide/f/backport-openssh-8.2p1-x11-without-ipv6.patch +@@ -3933,16 +3933,26 @@ x11_create_display_inet(int x11_display_ + if (ai->ai_family == AF_INET6) + sock_set_v6only(sock); + if (x11_use_localhost) + set_reuseaddr(sock); + if (bind(sock, ai->ai_addr, ai->ai_addrlen) == -1) { + debug2_f("bind port %d: %.100s", port, + strerror(errno)); + close(sock); ++ ++ /* do not remove successfully opened ++ * sockets if the request failed because ++ * the protocol IPv4/6 is not available ++ * (e.g. IPv6 may be disabled while being ++ * supported) ++ */ ++ if (EADDRNOTAVAIL == errno) ++ continue; ++ + for (n = 0; n < num_socks; n++) + close(socks[n]); + num_socks = 0; + break; + } + socks[num_socks++] = sock; + if (num_socks == NUM_SOCKS) + break; |