summaryrefslogtreecommitdiff
path: root/ssh.c
diff options
context:
space:
mode:
authorDamien Miller <djm@mindrot.org>2011-01-07 09:51:17 +1100
committerDamien Miller <djm@mindrot.org>2011-01-07 09:51:17 +1100
commit83f8a4014d1818687f4e0ab36d1d388abac78863 (patch)
tree6528a3df7789e42f7105bf78160fab8119b526b0 /ssh.c
parent322125b9603cab2c70e827ae83d332cb6575e399 (diff)
- djm@cvs.openbsd.org 2011/01/06 22:23:53
[ssh.c] unbreak %n expansion in LocalCommand; patch from bert.wesarg AT googlemail.com; ok markus@
Diffstat (limited to 'ssh.c')
-rw-r--r--ssh.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/ssh.c b/ssh.c
index ec690ae38..9409fa713 100644
--- a/ssh.c
+++ b/ssh.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssh.c,v 1.355 2010/11/29 23:45:51 djm Exp $ */ 1/* $OpenBSD: ssh.c,v 1.356 2011/01/06 22:23:53 djm Exp $ */
2/* 2/*
3 * Author: Tatu Ylonen <ylo@cs.hut.fi> 3 * Author: Tatu Ylonen <ylo@cs.hut.fi>
4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -221,7 +221,7 @@ int
221main(int ac, char **av) 221main(int ac, char **av)
222{ 222{
223 int i, r, opt, exit_status, use_syslog; 223 int i, r, opt, exit_status, use_syslog;
224 char *p, *cp, *line, *argv0, buf[MAXPATHLEN]; 224 char *p, *cp, *line, *argv0, buf[MAXPATHLEN], *host_arg;
225 struct stat st; 225 struct stat st;
226 struct passwd *pw; 226 struct passwd *pw;
227 int dummy, timeout_ms; 227 int dummy, timeout_ms;
@@ -693,6 +693,8 @@ main(int ac, char **av)
693 options.port = sp ? ntohs(sp->s_port) : SSH_DEFAULT_PORT; 693 options.port = sp ? ntohs(sp->s_port) : SSH_DEFAULT_PORT;
694 } 694 }
695 695
696 /* preserve host name given on command line for %n expansion */
697 host_arg = host;
696 if (options.hostname != NULL) { 698 if (options.hostname != NULL) {
697 host = percent_expand(options.hostname, 699 host = percent_expand(options.hostname,
698 "h", host, (char *)NULL); 700 "h", host, (char *)NULL);
@@ -707,7 +709,7 @@ main(int ac, char **av)
707 debug3("expanding LocalCommand: %s", options.local_command); 709 debug3("expanding LocalCommand: %s", options.local_command);
708 cp = options.local_command; 710 cp = options.local_command;
709 options.local_command = percent_expand(cp, "d", pw->pw_dir, 711 options.local_command = percent_expand(cp, "d", pw->pw_dir,
710 "h", host, "l", thishost, "n", host, "r", options.user, 712 "h", host, "l", thishost, "n", host_arg, "r", options.user,
711 "p", buf, "u", pw->pw_name, (char *)NULL); 713 "p", buf, "u", pw->pw_name, (char *)NULL);
712 debug3("expanded LocalCommand: %s", options.local_command); 714 debug3("expanded LocalCommand: %s", options.local_command);
713 xfree(cp); 715 xfree(cp);