upstream: allow spaces to appear in usernames for local to remote,

and scp -3 remote to remote copies. with & ok dtucker bz#1164

OpenBSD-Commit-ID: e9b550f3a85ffbb079b6720833da31317901d6dd
This commit is contained in:
djm@openbsd.org 2021-07-05 00:25:42 +00:00 committed by Damien Miller
parent 8c4ef0943e
commit b67eb12f01
1 changed files with 10 additions and 5 deletions

15
scp.c
View File

@ -1,4 +1,4 @@
/* $OpenBSD: scp.c,v 1.214 2021/04/03 06:18:40 djm Exp $ */
/* $OpenBSD: scp.c,v 1.215 2021/07/05 00:25:42 djm Exp $ */
/*
* scp - secure remote copy. This is basically patched BSD rcp which
* uses ssh to do the data transfer (instead of using rcmd).
@ -915,10 +915,6 @@ toremote(int argc, char **argv)
goto out;
}
}
if (tuser != NULL && !okname(tuser)) {
++errs;
goto out;
}
/* Parse source files */
for (i = 0; i < argc - 1; i++) {
@ -953,6 +949,15 @@ toremote(int argc, char **argv)
(void) close(remout);
remin = remout = -1;
} else if (host) { /* standard remote to remote */
/*
* Second remote user is passed to first remote side
* via scp command-line. Ensure it contains no obvious
* shell characters.
*/
if (tuser != NULL && !okname(tuser)) {
++errs;
continue;
}
if (tport != -1 && tport != SSH_DEFAULT_PORT) {
/* This would require the remote support URIs */
fatal("target port not supported with two "