forked from pool/openssh
7bccbbd821
- Update to 7.8p1: * no actual changes for the askpass - Format with spec-cleaner - Respect cflags - Use gtk3 rather than gtk2 which is being phased out - Remove the mention of the SLE12 in the README.SUSE - Install firewall rules only when really needed (<SLE15) - Version update to 7.8p1: * For most details see release notes file * ssh-keygen(1): write OpenSSH format private keys by default instead of using OpenSSL's PEM format - Rebase patches to apply on 7.8p1 release: * openssh-7.7p1-fips.patch * openssh-7.7p1-cavstest-kdf.patch * openssh-7.7p1-fips_checks.patch * openssh-7.7p1-gssapi_key_exchange.patch * openssh-7.7p1-audit.patch * openssh-7.7p1-openssl_1.1.0.patch * openssh-7.7p1-ldap.patch * openssh-7.7p1-IPv6_X_forwarding.patch * openssh-7.7p1-sftp_print_diagnostic_messages.patch * openssh-7.7p1-disable_short_DH_parameters.patch * openssh-7.7p1-hostname_changes_when_forwarding_X.patch * openssh-7.7p1-pam_check_locks.patch * openssh-7.7p1-seed-prng.patch * openssh-7.7p1-systemd-notify.patch * openssh-7.7p1-X11_trusted_forwarding.patch - Dropped patches: OBS-URL: https://build.opensuse.org/request/show/642573 OBS-URL: https://build.opensuse.org/package/show/network/openssh?expand=0&rev=153
33 lines
1.0 KiB
Diff
33 lines
1.0 KiB
Diff
# HG changeset patch
|
|
# Parent 44592f09f090e74432f608084069d30d808fda69
|
|
Do not throw away already open sockets for X11 forwarding if another socket
|
|
family is not available for bind()
|
|
|
|
diff --git a/openssh-7.7p1/channels.c b/openssh-7.7p1/channels.c
|
|
--- openssh-7.7p1/channels.c
|
|
+++ openssh-7.7p1/channels.c
|
|
@@ -4421,16 +4421,23 @@ x11_create_display_inet(struct ssh *ssh,
|
|
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) < 0) {
|
|
debug2("%s: bind port %d: %.100s", __func__,
|
|
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;
|