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). |
@@ -381,8 +381,11 @@ typedef struct { | |||
381 | BUF *allocbuf(BUF *, int, int); | 381 | BUF *allocbuf(BUF *, int, int); |
382 | void lostconn(int); | 382 | void lostconn(int); |
383 | int okname(char *); | 383 | int okname(char *); |
384 | void run_err(const char *,...); | 384 | void run_err(const char *,...) |
385 | int note_err(const char *,...); | 385 | __attribute__((__format__ (printf, 1, 2))) |
386 | __attribute__((__nonnull__ (1))); | ||
387 | int note_err(const char *,...) | ||
388 | __attribute__((__format__ (printf, 1, 2))); | ||
386 | void verifydir(char *); | 389 | void verifydir(char *); |
387 | 390 | ||
388 | struct passwd *pwd; | 391 | struct passwd *pwd; |
@@ -430,7 +433,6 @@ main(int argc, char **argv) | |||
430 | args.list = remote_remote_args.list = NULL; | 433 | args.list = remote_remote_args.list = NULL; |
431 | addargs(&args, "%s", ssh_program); | 434 | addargs(&args, "%s", ssh_program); |
432 | addargs(&args, "-x"); | 435 | addargs(&args, "-x"); |
433 | addargs(&args, "-oForwardAgent=no"); | ||
434 | addargs(&args, "-oPermitLocalCommand=no"); | 436 | addargs(&args, "-oPermitLocalCommand=no"); |
435 | addargs(&args, "-oClearAllForwardings=yes"); | 437 | addargs(&args, "-oClearAllForwardings=yes"); |
436 | addargs(&args, "-oRemoteCommand=none"); | 438 | addargs(&args, "-oRemoteCommand=none"); |
@@ -438,7 +440,7 @@ main(int argc, char **argv) | |||
438 | 440 | ||
439 | fflag = Tflag = tflag = 0; | 441 | fflag = Tflag = tflag = 0; |
440 | while ((ch = getopt(argc, argv, | 442 | while ((ch = getopt(argc, argv, |
441 | "dfl:prtTvBCc:i:P:q12346S:o:F:J:")) != -1) { | 443 | "12346ABCTdfpqrtvF:J:P:S:c:i:l:o:")) != -1) { |
442 | switch (ch) { | 444 | switch (ch) { |
443 | /* User-visible flags. */ | 445 | /* User-visible flags. */ |
444 | case '1': | 446 | case '1': |
@@ -447,6 +449,7 @@ main(int argc, char **argv) | |||
447 | case '2': | 449 | case '2': |
448 | /* Ignored */ | 450 | /* Ignored */ |
449 | break; | 451 | break; |
452 | case 'A': | ||
450 | case '4': | 453 | case '4': |
451 | case '6': | 454 | case '6': |
452 | case 'C': | 455 | case 'C': |
@@ -528,6 +531,9 @@ main(int argc, char **argv) | |||
528 | argc -= optind; | 531 | argc -= optind; |
529 | argv += optind; | 532 | argv += optind; |
530 | 533 | ||
534 | /* Do this last because we want the user to be able to override it */ | ||
535 | addargs(&args, "-oForwardAgent=no"); | ||
536 | |||
531 | if ((pwd = getpwuid(userid = getuid())) == NULL) | 537 | if ((pwd = getpwuid(userid = getuid())) == NULL) |
532 | fatal("unknown user %u", (u_int) userid); | 538 | fatal("unknown user %u", (u_int) userid); |
533 | 539 | ||
@@ -1528,7 +1534,7 @@ bad: run_err("%s: %s", np, strerror(errno)); | |||
1528 | } | 1534 | } |
1529 | } | 1535 | } |
1530 | if (close(ofd) == -1) | 1536 | if (close(ofd) == -1) |
1531 | note_err(np, "%s: close: %s", np, strerror(errno)); | 1537 | note_err("%s: close: %s", np, strerror(errno)); |
1532 | (void) response(); | 1538 | (void) response(); |
1533 | if (showprogress) | 1539 | if (showprogress) |
1534 | stop_progress_meter(); | 1540 | stop_progress_meter(); |
@@ -1598,7 +1604,7 @@ void | |||
1598 | usage(void) | 1604 | usage(void) |
1599 | { | 1605 | { |
1600 | (void) fprintf(stderr, | 1606 | (void) fprintf(stderr, |
1601 | "usage: scp [-346BCpqrTv] [-c cipher] [-F ssh_config] [-i identity_file]\n" | 1607 | "usage: scp [-346ABCpqrTv] [-c cipher] [-F ssh_config] [-i identity_file]\n" |
1602 | " [-J destination] [-l limit] [-o ssh_option] [-P port]\n" | 1608 | " [-J destination] [-l limit] [-o ssh_option] [-P port]\n" |
1603 | " [-S program] source ... target\n"); | 1609 | " [-S program] source ... target\n"); |
1604 | exit(1); | 1610 | exit(1); |