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 b4492a062..6ae17061d 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).
@@ -373,8 +373,11 @@ typedef struct {
373BUF *allocbuf(BUF *, int, int); 373BUF *allocbuf(BUF *, int, int);
374void lostconn(int); 374void lostconn(int);
375int okname(char *); 375int okname(char *);
376void run_err(const char *,...); 376void run_err(const char *,...)
377int note_err(const char *,...); 377 __attribute__((__format__ (printf, 1, 2)))
378 __attribute__((__nonnull__ (1)));
379int note_err(const char *,...)
380 __attribute__((__format__ (printf, 1, 2)));
378void verifydir(char *); 381void verifydir(char *);
379 382
380struct passwd *pwd; 383struct 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
1590usage(void) 1596usage(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);