View | Details | Raw Unified | Return to bug 1814 | Differences between
and this patch

Collapse All | Expand All

(-)openssh-5.8p2/scp.c (-8 / +21 lines)
Lines 273-279 Link Here
273
			addargs(&args, "-l");
273
			addargs(&args, "-l");
274
			addargs(&args, "%s", remuser);
274
			addargs(&args, "%s", remuser);
275
		}
275
		}
276
		addargs(&args, "--");
276
		/* "--" breaks some non-getopt clients, only use if needed */
277
		if (strchr("-?*", host[0]) != NULL)
278
			addargs(&args, "--");
277
		addargs(&args, "%s", host);
279
		addargs(&args, "%s", host);
278
		addargs(&args, "%s", cmd);
280
		addargs(&args, "%s", cmd);
279
281
Lines 322-328 Link Here
322
			addargs(&args, "-l");
324
			addargs(&args, "-l");
323
			addargs(&args, "%s", remuser);
325
			addargs(&args, "%s", remuser);
324
		}
326
		}
325
		addargs(&args, "--");
327
		/* "--" breaks some non-getopt clients, only use if needed */
328
		if (strchr("-?*", host[0]) != NULL)
329
			addargs(&args, "--");
326
		addargs(&args, "%s", host);
330
		addargs(&args, "%s", host);
327
		addargs(&args, "%s", cmd);
331
		addargs(&args, "%s", cmd);
328
332
Lines 601-612 Link Here
601
				host = cleanhostname(argv[i]);
605
				host = cleanhostname(argv[i]);
602
				suser = NULL;
606
				suser = NULL;
603
			}
607
			}
604
			xasprintf(&bp, "%s -f -- %s", cmd, src);
608
			/* "--" breaks some non-getopt clients, only use if needed */
609
			xasprintf(&bp, "%s -f %s%s", cmd,
610
			    strchr("-?*", src[0]) != NULL ? "-- " : "", src);
605
			if (do_cmd(host, suser, bp, &remin, &remout) < 0)
611
			if (do_cmd(host, suser, bp, &remin, &remout) < 0)
606
				exit(1);
612
				exit(1);
607
			(void) xfree(bp);
613
			(void) xfree(bp);
608
			host = cleanhostname(thost);
614
			host = cleanhostname(thost);
609
			xasprintf(&bp, "%s -t -- %s", cmd, targ);
615
			xasprintf(&bp, "%s -t %s%s", cmd,
616
			    strchr("-?*", targ[0]) != NULL ? "-- " : "", targ);
610
			if (do_cmd2(host, tuser, bp, remin, remout) < 0)
617
			if (do_cmd2(host, tuser, bp, remin, remout) < 0)
611
				exit(1);
618
				exit(1);
612
			(void) xfree(bp);
619
			(void) xfree(bp);
Lines 641-647 Link Here
641
			} else {
648
			} else {
642
				host = cleanhostname(argv[i]);
649
				host = cleanhostname(argv[i]);
643
			}
650
			}
644
			addargs(&alist, "--");
651
			/* "--" breaks some non-getopt clients, only use if needed */
652
			if (strchr("-?*", host[0]) != NULL)
653
				addargs(&alist, "--");
645
			addargs(&alist, "%s", host);
654
			addargs(&alist, "%s", host);
646
			addargs(&alist, "%s", cmd);
655
			addargs(&alist, "%s", cmd);
647
			addargs(&alist, "%s", src);
656
			addargs(&alist, "%s", src);
Lines 652-658 Link Here
652
				errs = 1;
661
				errs = 1;
653
		} else {	/* local to remote */
662
		} else {	/* local to remote */
654
			if (remin == -1) {
663
			if (remin == -1) {
655
				xasprintf(&bp, "%s -t -- %s", cmd, targ);
664
				xasprintf(&bp, "%s -t %s%s", cmd,
665
				    strchr("-?*", targ[0]) != NULL ? "-- " : "", targ);
656
				host = cleanhostname(thost);
666
				host = cleanhostname(thost);
657
				if (do_cmd(host, tuser, bp, &remin,
667
				if (do_cmd(host, tuser, bp, &remin,
658
				    &remout) < 0)
668
				    &remout) < 0)
Lines 685-691 Link Here
685
				addargs(&alist, "-r");
695
				addargs(&alist, "-r");
686
			if (pflag)
696
			if (pflag)
687
				addargs(&alist, "-p");
697
				addargs(&alist, "-p");
688
			addargs(&alist, "--");
698
			/* "--" breaks some non-getopt clients, only use if needed */
699
			if (strchr("-?*", argv[i][0]) != NULL)
700
				addargs(&alist, "--");
689
			addargs(&alist, "%s", argv[i]);
701
			addargs(&alist, "%s", argv[i]);
690
			addargs(&alist, "%s", argv[argc-1]);
702
			addargs(&alist, "%s", argv[argc-1]);
691
			if (do_local_cmd(&alist))
703
			if (do_local_cmd(&alist))
Lines 705-711 Link Here
705
				suser = pwd->pw_name;
717
				suser = pwd->pw_name;
706
		}
718
		}
707
		host = cleanhostname(host);
719
		host = cleanhostname(host);
708
		xasprintf(&bp, "%s -f -- %s", cmd, src);
720
		xasprintf(&bp, "%s -f %s%s", cmd,
721
		    strchr("-?*", src[0]) != NULL ? "-- " : "", src);
709
		if (do_cmd(host, suser, bp, &remin, &remout) < 0) {
722
		if (do_cmd(host, suser, bp, &remin, &remout) < 0) {
710
			(void) xfree(bp);
723
			(void) xfree(bp);
711
			++errs;
724
			++errs;
(-)openssh-5.8p2/sftp.c (-1 / +3 lines)
Lines 2244-2250 Link Here
2244
		if (sftp_server == NULL || strchr(sftp_server, '/') == NULL)
2244
		if (sftp_server == NULL || strchr(sftp_server, '/') == NULL)
2245
			addargs(&args, "-s");
2245
			addargs(&args, "-s");
2246
2246
2247
		addargs(&args, "--");
2247
		/* "--" breaks some non-getopt clients, only use if needed */
2248
		if (strchr("-?*", host[0]) != NULL)
2249
			addargs(&args, "--");
2248
		addargs(&args, "%s", host);
2250
		addargs(&args, "%s", host);
2249
		addargs(&args, "%s", (sftp_server != NULL ?
2251
		addargs(&args, "%s", (sftp_server != NULL ?
2250
		    sftp_server : "sftp"));
2252
		    sftp_server : "sftp"));

Return to bug 1814