diff options
author | djm <djm> | 2011-09-22 11:38:00 +0000 |
---|---|---|
committer | djm <djm> | 2011-09-22 11:38:00 +0000 |
commit | 2fa41d5bdd0b7b344a51a6e017605a4572678a76 (patch) | |
tree | e9b49f38c72c32518874a5e60fafcdbd869affcc | |
parent | abc5b01d51f301514d4561cbd07cadd46ecc55e3 (diff) | |
download | openssh-2fa41d5bdd0b7b344a51a6e017605a4572678a76.tar.gz |
- djm@cvs.openbsd.org 2011/09/09 22:37:01
[scp.c]
suppress adding '--' to remote commandlines when the first argument
does not start with '-'. saves breakage on some difficult-to-upgrade
embedded/router platforms; feedback & ok dtucker ok markus
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | scp.c | 14 |
2 files changed, 14 insertions, 5 deletions
@@ -42,6 +42,11 @@ [PROTOCOL.mux] MUX_C_CLOSE_FWD includes forward type in message (though it isn't implemented anyway) + - djm@cvs.openbsd.org 2011/09/09 22:37:01 + [scp.c] + suppress adding '--' to remote commandlines when the first argument + does not start with '-'. saves breakage on some difficult-to-upgrade + embedded/router platforms; feedback & ok dtucker ok markus 20110909 - (dtucker) [entropy.h] Bug #1932: remove old definition of init_rng. From @@ -1,4 +1,4 @@ -/* $OpenBSD: scp.c,v 1.170 2010/12/09 14:13:33 jmc Exp $ */ +/* $OpenBSD: scp.c,v 1.171 2011/09/09 22:37:01 djm Exp $ */ /* * scp - secure remote copy. This is basically patched BSD rcp which * uses ssh to do the data transfer (instead of using rcmd). @@ -601,12 +601,14 @@ toremote(char *targ, int argc, char **argv) host = cleanhostname(argv[i]); suser = NULL; } - xasprintf(&bp, "%s -f -- %s", cmd, src); + xasprintf(&bp, "%s -f %s%s", cmd, + *src == '-' ? "-- " : "", src); if (do_cmd(host, suser, bp, &remin, &remout) < 0) exit(1); (void) xfree(bp); host = cleanhostname(thost); - xasprintf(&bp, "%s -t -- %s", cmd, targ); + xasprintf(&bp, "%s -t %s%s", cmd, + *targ == '-' ? "-- " : "", targ); if (do_cmd2(host, tuser, bp, remin, remout) < 0) exit(1); (void) xfree(bp); @@ -652,7 +654,8 @@ toremote(char *targ, int argc, char **argv) errs = 1; } else { /* local to remote */ if (remin == -1) { - xasprintf(&bp, "%s -t -- %s", cmd, targ); + xasprintf(&bp, "%s -t %s%s", cmd, + *targ == '-' ? "-- " : "", targ); host = cleanhostname(thost); if (do_cmd(host, tuser, bp, &remin, &remout) < 0) @@ -705,7 +708,8 @@ tolocal(int argc, char **argv) suser = pwd->pw_name; } host = cleanhostname(host); - xasprintf(&bp, "%s -f -- %s", cmd, src); + xasprintf(&bp, "%s -f %s%s", + cmd, *src == '-' ? "-- " : "", src); if (do_cmd(host, suser, bp, &remin, &remout) < 0) { (void) xfree(bp); ++errs; |