summaryrefslogtreecommitdiff
path: root/openssh-8.2p1-x11-without-ipv6.patch
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-10-02 04:02:17 +0000
committerCoprDistGit <infra@openeuler.org>2023-10-02 04:02:17 +0000
commit24b6ed9bc1ef1538b8f3e254b30b1006f5e4d78f (patch)
treee2725d205951345a1c853965086be06d6a6cbf59 /openssh-8.2p1-x11-without-ipv6.patch
parentc7ba49a1e66ed27d507eafa4da2b81838a2afa64 (diff)
automatic import of openssh
Diffstat (limited to 'openssh-8.2p1-x11-without-ipv6.patch')
-rw-r--r--openssh-8.2p1-x11-without-ipv6.patch30
1 files changed, 30 insertions, 0 deletions
diff --git a/openssh-8.2p1-x11-without-ipv6.patch b/openssh-8.2p1-x11-without-ipv6.patch
new file mode 100644
index 0000000..8b83bc3
--- /dev/null
+++ b/openssh-8.2p1-x11-without-ipv6.patch
@@ -0,0 +1,30 @@
+diff --git a/channels.c b/channels.c
+--- a/channels.c
++++ b/channels.c
+@@ -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;