diff options
Diffstat (limited to 'scp.c')
-rw-r--r-- | scp.c | 20 |
1 files changed, 13 insertions, 7 deletions
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: scp.c,v 1.210 2020/05/06 20:57:38 djm Exp $ */ | 1 | /* $OpenBSD: scp.c,v 1.212 2020/08/03 02:43:41 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * scp - secure remote copy. This is basically patched BSD rcp which | 3 | * scp - secure remote copy. This is basically patched BSD rcp which |
4 | * uses ssh to do the data transfer (instead of using rcmd). | 4 | * uses ssh to do the data transfer (instead of using rcmd). |
@@ -373,8 +373,11 @@ typedef struct { | |||
373 | BUF *allocbuf(BUF *, int, int); | 373 | BUF *allocbuf(BUF *, int, int); |
374 | void lostconn(int); | 374 | void lostconn(int); |
375 | int okname(char *); | 375 | int okname(char *); |
376 | void run_err(const char *,...); | 376 | void run_err(const char *,...) |
377 | int note_err(const char *,...); | 377 | __attribute__((__format__ (printf, 1, 2))) |
378 | __attribute__((__nonnull__ (1))); | ||
379 | int note_err(const char *,...) | ||
380 | __attribute__((__format__ (printf, 1, 2))); | ||
378 | void verifydir(char *); | 381 | void verifydir(char *); |
379 | 382 | ||
380 | struct passwd *pwd; | 383 | struct passwd *pwd; |
@@ -422,7 +425,6 @@ main(int argc, char **argv) | |||
422 | args.list = remote_remote_args.list = NULL; | 425 | args.list = remote_remote_args.list = NULL; |
423 | addargs(&args, "%s", ssh_program); | 426 | addargs(&args, "%s", ssh_program); |
424 | addargs(&args, "-x"); | 427 | addargs(&args, "-x"); |
425 | addargs(&args, "-oForwardAgent=no"); | ||
426 | addargs(&args, "-oPermitLocalCommand=no"); | 428 | addargs(&args, "-oPermitLocalCommand=no"); |
427 | addargs(&args, "-oClearAllForwardings=yes"); | 429 | addargs(&args, "-oClearAllForwardings=yes"); |
428 | addargs(&args, "-oRemoteCommand=none"); | 430 | addargs(&args, "-oRemoteCommand=none"); |
@@ -430,7 +432,7 @@ main(int argc, char **argv) | |||
430 | 432 | ||
431 | fflag = Tflag = tflag = 0; | 433 | fflag = Tflag = tflag = 0; |
432 | while ((ch = getopt(argc, argv, | 434 | while ((ch = getopt(argc, argv, |
433 | "dfl:prtTvBCc:i:P:q12346S:o:F:J:")) != -1) { | 435 | "12346ABCTdfpqrtvF:J:P:S:c:i:l:o:")) != -1) { |
434 | switch (ch) { | 436 | switch (ch) { |
435 | /* User-visible flags. */ | 437 | /* User-visible flags. */ |
436 | case '1': | 438 | case '1': |
@@ -439,6 +441,7 @@ main(int argc, char **argv) | |||
439 | case '2': | 441 | case '2': |
440 | /* Ignored */ | 442 | /* Ignored */ |
441 | break; | 443 | break; |
444 | case 'A': | ||
442 | case '4': | 445 | case '4': |
443 | case '6': | 446 | case '6': |
444 | case 'C': | 447 | case 'C': |
@@ -520,6 +523,9 @@ main(int argc, char **argv) | |||
520 | argc -= optind; | 523 | argc -= optind; |
521 | argv += optind; | 524 | argv += optind; |
522 | 525 | ||
526 | /* Do this last because we want the user to be able to override it */ | ||
527 | addargs(&args, "-oForwardAgent=no"); | ||
528 | |||
523 | if ((pwd = getpwuid(userid = getuid())) == NULL) | 529 | if ((pwd = getpwuid(userid = getuid())) == NULL) |
524 | fatal("unknown user %u", (u_int) userid); | 530 | fatal("unknown user %u", (u_int) userid); |
525 | 531 | ||
@@ -1520,7 +1526,7 @@ bad: run_err("%s: %s", np, strerror(errno)); | |||
1520 | } | 1526 | } |
1521 | } | 1527 | } |
1522 | if (close(ofd) == -1) | 1528 | if (close(ofd) == -1) |
1523 | note_err(np, "%s: close: %s", np, strerror(errno)); | 1529 | note_err("%s: close: %s", np, strerror(errno)); |
1524 | (void) response(); | 1530 | (void) response(); |
1525 | if (showprogress) | 1531 | if (showprogress) |
1526 | stop_progress_meter(); | 1532 | stop_progress_meter(); |
@@ -1590,7 +1596,7 @@ void | |||
1590 | usage(void) | 1596 | usage(void) |
1591 | { | 1597 | { |
1592 | (void) fprintf(stderr, | 1598 | (void) fprintf(stderr, |
1593 | "usage: scp [-346BCpqrTv] [-c cipher] [-F ssh_config] [-i identity_file]\n" | 1599 | "usage: scp [-346ABCpqrTv] [-c cipher] [-F ssh_config] [-i identity_file]\n" |
1594 | " [-J destination] [-l limit] [-o ssh_option] [-P port]\n" | 1600 | " [-J destination] [-l limit] [-o ssh_option] [-P port]\n" |
1595 | " [-S program] source ... target\n"); | 1601 | " [-S program] source ... target\n"); |
1596 | exit(1); | 1602 | exit(1); |