]> git.ipfire.org Git - thirdparty/openssh-portable.git/commitdiff
upstream commit
authordjm@openbsd.org <djm@openbsd.org>
Fri, 11 Sep 2015 03:47:28 +0000 (03:47 +0000)
committerDamien Miller <djm@mindrot.org>
Wed, 16 Sep 2015 07:52:04 +0000 (17:52 +1000)
expand %i in ControlPath to UID; bz#2449

patch from Christian Hesse w/ feedback from dtucker@

Upstream-ID: 2ba8d303e555a84e2f2165ab4b324b41e80ab925

ssh.c
ssh_config.5

diff --git a/ssh.c b/ssh.c
index bf8c9c646ed659a27a92980f151345b0f766982e..55a496cb1fe615bc324f6db9e781de15492a0780 100644 (file)
--- a/ssh.c
+++ b/ssh.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ssh.c,v 1.422 2015/09/04 08:21:47 dtucker Exp $ */
+/* $OpenBSD: ssh.c,v 1.423 2015/09/11 03:47:28 djm Exp $ */
 /*
  * Author: Tatu Ylonen <ylo@cs.hut.fi>
  * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -506,7 +506,7 @@ main(int ac, char **av)
        int i, r, opt, exit_status, use_syslog, config_test = 0;
        char *p, *cp, *line, *argv0, buf[PATH_MAX], *host_arg, *logfile;
        char thishost[NI_MAXHOST], shorthost[NI_MAXHOST], portstr[NI_MAXSERV];
-       char cname[NI_MAXHOST];
+       char cname[NI_MAXHOST], uidstr[32], *conn_hash_hex;
        struct stat st;
        struct passwd *pw;
        int timeout_ms;
@@ -516,7 +516,6 @@ main(int ac, char **av)
        struct addrinfo *addrs = NULL;
        struct ssh_digest_ctx *md;
        u_char conn_hash[SSH_DIGEST_MAX_LENGTH];
-       char *conn_hash_hex;
 
        /* Ensure that fds 0, 1 and 2 are open or directed to /dev/null */
        sanitise_stdfd();
@@ -1123,6 +1122,7 @@ main(int ac, char **av)
        strlcpy(shorthost, thishost, sizeof(shorthost));
        shorthost[strcspn(thishost, ".")] = '\0';
        snprintf(portstr, sizeof(portstr), "%d", options.port);
+       snprintf(uidstr, sizeof(uidstr), "%d", pw->pw_uid);
 
        if ((md = ssh_digest_start(SSH_DIGEST_SHA1)) == NULL ||
            ssh_digest_update(md, thishost, strlen(thishost)) < 0 ||
@@ -1165,6 +1165,7 @@ main(int ac, char **av)
                    "p", portstr,
                    "r", options.user,
                    "u", pw->pw_name,
+                   "i", uidstr,
                    (char *)NULL);
                free(cp);
        }
index 9c6c2bdac1e6b6279f2451a8998572c5ef14fb46..a4c85217a55d4204e0e3b0a992f80d0295bb6db7 100644 (file)
@@ -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.217 2015/09/04 06:40:45 jmc Exp $
-.Dd $Mdocdate: September 4 2015 $
+.\" $OpenBSD: ssh_config.5,v 1.218 2015/09/11 03:47:28 djm Exp $
+.Dd $Mdocdate: September 11 2015 $
 .Dt SSH_CONFIG 5
 .Os
 .Sh NAME
@@ -538,7 +538,9 @@ the destination port,
 .Ql %r
 by the remote login username,
 .Ql %u
-by the username of the user running
+by the username and
+.Ql %i
+by the numeric user id (uid) of the user running
 .Xr ssh 1 , and
 .Ql \&%C
 by a hash of the concatenation: %l%h%p%r.