summaryrefslogtreecommitdiff
path: root/scp.c
diff options
context:
space:
mode:
Diffstat (limited to 'scp.c')
-rw-r--r--scp.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/scp.c b/scp.c
index 66b4af8e8..2d1b8e9b9 100644
--- a/scp.c
+++ b/scp.c
@@ -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 {
381BUF *allocbuf(BUF *, int, int); 381BUF *allocbuf(BUF *, int, int);
382void lostconn(int); 382void lostconn(int);
383int okname(char *); 383int okname(char *);
384void run_err(const char *,...); 384void run_err(const char *,...)
385int note_err(const char *,...); 385 __attribute__((__format__ (printf, 1, 2)))
386 __attribute__((__nonnull__ (1)));
387int note_err(const char *,...)
388 __attribute__((__format__ (printf, 1, 2)));
386void verifydir(char *); 389void verifydir(char *);
387 390
388struct passwd *pwd; 391struct 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
1598usage(void) 1604usage(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);