components/openssh/patches/011-useprivilegedport_regression.patch
branchs11u3-sru
changeset 5324 5683175b6e99
parent 5322 e8cdd896f216
child 5329 901296430eab
--- a/components/openssh/patches/011-useprivilegedport_regression.patch	Thu Jan 14 09:14:14 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-#
-# This is to fix a regression in OpenSSH6.5p1 for UsePrivilegedPort=yes. The
-# bug fix code came from OpenSSH.org.  When we upgrade OpenSSH to version 6.6
-# or later, we will remove this patch file.
-#
---- orig/sshconnect.c	Mon Feb 10 13:56:07 2014
-+++ new/sshconnect.c	Mon Feb 10 17:10:54 2014
-@@ -269,7 +269,7 @@
- ssh_create_socket(int privileged, struct addrinfo *ai)
- {
- 	int sock, r, gaierr;
--	struct addrinfo hints, *res;
-+	struct addrinfo hints, *res = NULL;
- 
- 	sock = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol);
- 	if (sock < 0) {
-@@ -282,17 +282,19 @@
- 	if (options.bind_address == NULL && !privileged)
- 		return sock;
- 
--	memset(&hints, 0, sizeof(hints));
--	hints.ai_family = ai->ai_family;
--	hints.ai_socktype = ai->ai_socktype;
--	hints.ai_protocol = ai->ai_protocol;
--	hints.ai_flags = AI_PASSIVE;
--	gaierr = getaddrinfo(options.bind_address, NULL, &hints, &res);
--	if (gaierr) {
-+	if (options.bind_address) {
-+            memset(&hints, 0, sizeof(hints));
-+	    hints.ai_family = ai->ai_family;
-+	    hints.ai_socktype = ai->ai_socktype;
-+	    hints.ai_protocol = ai->ai_protocol;
-+	    hints.ai_flags = AI_PASSIVE;
-+	    gaierr = getaddrinfo(options.bind_address, NULL, &hints, &res);
-+	    if (gaierr) {
- 		error("getaddrinfo: %s: %s", options.bind_address,
- 		    ssh_gai_strerror(gaierr));
- 		close(sock);
- 		return -1;
-+	    }
- 	}
- 	/*
- 	 * If we are running as root and want to connect to a privileged
-@@ -300,7 +302,7 @@
- 	 */
- 	if (privileged) {
- 		PRIV_START;
--		r = bindresvport_sa(sock, res->ai_addr);
-+		r = bindresvport_sa(sock, res ? res->ai_addr : NULL);
- 		PRIV_END;
- 		if (r < 0) {
- 			error("bindresvport_sa: af=%d %s", ai->ai_family,
-@@ -317,7 +319,8 @@
- 			return -1;
- 		}
- 	}
--	freeaddrinfo(res);
-+        if (res != NULL)
-+	        freeaddrinfo(res);
- 	return sock;
- }
-