diff options
author | 2011-01-06 22:23:53 +0000 | |
---|---|---|
committer | 2011-01-06 22:23:53 +0000 | |
commit | d608aa0851105016f5a0bf483da9c65fc06493ee (patch) | |
tree | c9b55f58cdc31bef497e24caeae8fefa76972775 /usr.bin/ssh/ssh.c | |
parent | when exiting due to ServerAliveTimeout, mention the hostname that caused (diff) | |
download | wireguard-openbsd-d608aa0851105016f5a0bf483da9c65fc06493ee.tar.xz wireguard-openbsd-d608aa0851105016f5a0bf483da9c65fc06493ee.zip |
unbreak %n expansion in LocalCommand; patch from bert.wesarg AT
googlemail.com; ok markus@
Diffstat (limited to 'usr.bin/ssh/ssh.c')
-rw-r--r-- | usr.bin/ssh/ssh.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/usr.bin/ssh/ssh.c b/usr.bin/ssh/ssh.c index 70f341da99c..4da221e9a2e 100644 --- a/usr.bin/ssh/ssh.c +++ b/usr.bin/ssh/ssh.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh.c,v 1.355 2010/11/29 23:45:51 djm Exp $ */ +/* $OpenBSD: ssh.c,v 1.356 2011/01/06 22:23:53 djm Exp $ */ /* * Author: Tatu Ylonen <ylo@cs.hut.fi> * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland @@ -213,7 +213,7 @@ int main(int ac, char **av) { int i, r, opt, exit_status, use_syslog; - char *p, *cp, *line, *argv0, buf[MAXPATHLEN]; + char *p, *cp, *line, *argv0, buf[MAXPATHLEN], *host_arg; struct stat st; struct passwd *pw; int dummy, timeout_ms; @@ -678,6 +678,8 @@ main(int ac, char **av) options.port = sp ? ntohs(sp->s_port) : SSH_DEFAULT_PORT; } + /* preserve host name given on command line for %n expansion */ + host_arg = host; if (options.hostname != NULL) { host = percent_expand(options.hostname, "h", host, (char *)NULL); @@ -692,7 +694,7 @@ main(int ac, char **av) debug3("expanding LocalCommand: %s", options.local_command); cp = options.local_command; options.local_command = percent_expand(cp, "d", pw->pw_dir, - "h", host, "l", thishost, "n", host, "r", options.user, + "h", host, "l", thishost, "n", host_arg, "r", options.user, "p", buf, "u", pw->pw_name, (char *)NULL); debug3("expanded LocalCommand: %s", options.local_command); xfree(cp); |