[openssh-commits] [openssh] 06/06: upstream commit

git+noreply at mindrot.org git+noreply at mindrot.org
Fri Jul 22 13:36:49 AEST 2016


This is an automated email from the git hooks/post-receive script.

djm pushed a commit to branch master
in repository openssh.

commit 286f5a77c3bfec1e8892ca268087ac885ac871bf
Author: djm at openbsd.org <djm at openbsd.org>
Date:   Fri Jul 22 03:35:11 2016 +0000

    upstream commit
    
    reverse the order in which -J/JumpHost proxies are visited to
    be more intuitive and document
    
    reported by and manpage bits naddy@
    
    Upstream-ID: 3a68fd6a841fd6cf8cedf6552a9607ba99df179a
---
 readconf.c   | 25 ++++++++++++++++---------
 ssh_config.5 |  7 ++++---
 2 files changed, 20 insertions(+), 12 deletions(-)

diff --git a/readconf.c b/readconf.c
index 8b5b219..c177202 100644
--- a/readconf.c
+++ b/readconf.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: readconf.c,v 1.258 2016/07/20 10:45:27 naddy Exp $ */
+/* $OpenBSD: readconf.c,v 1.259 2016/07/22 03:35:11 djm Exp $ */
 /*
  * Author: Tatu Ylonen <ylo at cs.hut.fi>
  * Copyright (c) 1995 Tatu Ylonen <ylo at cs.hut.fi>, Espoo, Finland
@@ -2292,7 +2292,12 @@ parse_jump(const char *s, Options *o, int active)
 
 	orig = sdup = xstrdup(s);
 	first = active;
-	while ((cp = strsep(&sdup, ",")) && cp != NULL) {
+	do {
+		if ((cp = strrchr(sdup, ',')) == NULL)
+			cp = sdup; /* last */
+		else
+			*cp++ = '\0';
+
 		if (first) {
 			/* First argument and configuration is active */
 			if (parse_user_host_port(cp, &user, &host, &port) != 0)
@@ -2303,7 +2308,7 @@ parse_jump(const char *s, Options *o, int active)
 				goto out;
 		}
 		first = 0; /* only check syntax for subsequent hosts */
-	}
+	} while (cp != sdup);
 	/* success */
 	if (active) {
 		o->jump_user = user;
@@ -2311,8 +2316,10 @@ parse_jump(const char *s, Options *o, int active)
 		o->jump_port = port;
 		o->proxy_command = xstrdup("none");
 		user = host = NULL;
-		if ((cp = strchr(s, ',')) != NULL && cp[1] != '\0')
-			o->jump_extra = xstrdup(cp + 1);
+		if ((cp = strrchr(s, ',')) != NULL && cp != s) {
+			o->jump_extra = xstrdup(s);
+			o->jump_extra[cp - s] = '\0';
+		}
 	}
 	ret = 0;
  out:
@@ -2636,6 +2643,9 @@ dump_client_config(Options *o, const char *host)
 		    strspn(o->jump_host, "1234567890.") == strlen(o->jump_host);
 		snprintf(buf, sizeof(buf), "%d", o->jump_port);
 		printf("proxyjump %s%s%s%s%s%s%s%s%s\n",
+		    /* optional additional jump spec */
+		    o->jump_extra == NULL ? "" : o->jump_extra,
+		    o->jump_extra == NULL ? "" : ",",
 		    /* optional user */
 		    o->jump_user == NULL ? "" : o->jump_user,
 		    o->jump_user == NULL ? "" : "@",
@@ -2647,9 +2657,6 @@ dump_client_config(Options *o, const char *host)
 		    i ? "]" : "",
 		    /* optional port number */
 		    o->jump_port <= 0 ? "" : ":",
-		    o->jump_port <= 0 ? "" : buf,
-		    /* optional additional jump spec */
-		    o->jump_extra == NULL ? "" : ",",
-		    o->jump_extra == NULL ? "" : o->jump_extra);
+		    o->jump_port <= 0 ? "" : buf);
 	}
 }
diff --git a/ssh_config.5 b/ssh_config.5
index 56d7798..fd7af4b 100644
--- a/ssh_config.5
+++ b/ssh_config.5
@@ -33,8 +33,8 @@
 .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 .\"
-.\" $OpenBSD: ssh_config.5,v 1.234 2016/07/16 06:57:55 jmc Exp $
-.Dd $Mdocdate: July 16 2016 $
+.\" $OpenBSD: ssh_config.5,v 1.235 2016/07/22 03:35:11 djm Exp $
+.Dd $Mdocdate: July 22 2016 $
 .Dt SSH_CONFIG 5
 .Os
 .Sh NAME
@@ -1367,7 +1367,8 @@ Specifies one or more jump proxies as
 .Op : Ns Ar port
 .Sm on
 .Xc .
-Multiple proxies may be separated by comma characters.
+Multiple proxies may be separated by comma characters and will be visited
+left-to-right.
 Setting this option will cause
 .Xr ssh 1
 to connect to the target host by first making a

-- 
To stop receiving notification emails like this one, please contact
djm at mindrot.org.


More information about the openssh-commits mailing list