summaryrefslogtreecommitdiff
path: root/scp.c
diff options
context:
space:
mode:
authordtucker@openbsd.org <dtucker@openbsd.org>2018-06-01 04:31:48 +0000
committerDamien Miller <djm@mindrot.org>2018-06-04 14:54:43 +1000
commite5019da3c5a31e6e729a565f2b886a80c4be96cc (patch)
tree8cceacd3e5ed700f92824c1d9b6b538a7b6fdaea /scp.c
parenta1dcafc41c376332493b9385ee39f9754dc145ec (diff)
upstream: Apply umask to all incoming files and directories not
just files. This makes sure it gets applied to directories too, and prevents a race where files get chmodded after creation. bz#2839, ok djm@ OpenBSD-Commit-ID: 3168ee6c7c39093adac4fd71039600cfa296203b
Diffstat (limited to 'scp.c')
-rw-r--r--scp.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/scp.c b/scp.c
index 80aed84b6..60682c687 100644
--- a/scp.c
+++ b/scp.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: scp.c,v 1.196 2018/04/10 00:10:49 djm Exp $ */ 1/* $OpenBSD: scp.c,v 1.197 2018/06/01 04:31:48 dtucker 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).
@@ -1092,6 +1092,8 @@ sink(int argc, char **argv)
1092 SCREWUP("bad mode"); 1092 SCREWUP("bad mode");
1093 mode = (mode << 3) | (*cp - '0'); 1093 mode = (mode << 3) | (*cp - '0');
1094 } 1094 }
1095 if (!pflag)
1096 mode &= ~mask;
1095 if (*cp++ != ' ') 1097 if (*cp++ != ' ')
1096 SCREWUP("mode not delimited"); 1098 SCREWUP("mode not delimited");
1097 1099