From 674b3b68c1d36b2562324927cd03857b565e05e8 Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Fri, 11 Sep 2015 03:47:28 +0000 Subject: [PATCH] upstream commit expand %i in ControlPath to UID; bz#2449 patch from Christian Hesse w/ feedback from dtucker@ Upstream-ID: 2ba8d303e555a84e2f2165ab4b324b41e80ab925 --- ssh.c | 7 ++++--- ssh_config.5 | 8 +++++--- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/ssh.c b/ssh.c index bf8c9c646..55a496cb1 100644 --- 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 * Copyright (c) 1995 Tatu Ylonen , 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); } diff --git a/ssh_config.5 b/ssh_config.5 index 9c6c2bdac..a4c85217a 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.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.