summaryrefslogtreecommitdiff
path: root/backport-openssh-8.2p1-x11-without-ipv6.patch
diff options
context:
space:
mode:
Diffstat (limited to 'backport-openssh-8.2p1-x11-without-ipv6.patch')
-rw-r--r--backport-openssh-8.2p1-x11-without-ipv6.patch31
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;