summaryrefslogtreecommitdiff
path: root/usr/src/cmd/ssh/scp/scp.c
diff options
context:
space:
mode:
authorjp161948 <none@none>2007-04-27 02:07:51 -0700
committerjp161948 <none@none>2007-04-27 02:07:51 -0700
commit038a8f41fc75478546db55fe98bd9c7fc5e08b96 (patch)
tree7a0f2a7f3cf7588502c9c8ccebfeb71f4847c6d6 /usr/src/cmd/ssh/scp/scp.c
parentd75e6a5d480f559280524b60d52730c76a25524f (diff)
downloadillumos-gate-038a8f41fc75478546db55fe98bd9c7fc5e08b96.tar.gz
6541172 scp skips a file after a "set mode:" error
Diffstat (limited to 'usr/src/cmd/ssh/scp/scp.c')
-rw-r--r--usr/src/cmd/ssh/scp/scp.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/usr/src/cmd/ssh/scp/scp.c b/usr/src/cmd/ssh/scp/scp.c
index c5ceeca8a5..2b2bb312f9 100644
--- a/usr/src/cmd/ssh/scp/scp.c
+++ b/usr/src/cmd/ssh/scp/scp.c
@@ -1,5 +1,5 @@
/*
- * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
/*
@@ -982,21 +982,25 @@ bad: run_err("%s: %s", np, strerror(errno));
if (pflag) {
if (exists || omode != mode)
#ifdef HAVE_FCHMOD
- if (fchmod(ofd, omode))
+ if (fchmod(ofd, omode)) {
#else /* HAVE_FCHMOD */
- if (chmod(np, omode))
+ if (chmod(np, omode)) {
#endif /* HAVE_FCHMOD */
run_err("%s: set mode: %s",
np, strerror(errno));
+ wrerr = DISPLAYED;
+ }
} else {
if (!exists && omode != mode)
#ifdef HAVE_FCHMOD
- if (fchmod(ofd, omode & ~mask))
+ if (fchmod(ofd, omode & ~mask)) {
#else /* HAVE_FCHMOD */
- if (chmod(np, omode & ~mask))
+ if (chmod(np, omode & ~mask)) {
#endif /* HAVE_FCHMOD */
run_err("%s: set mode: %s",
np, strerror(errno));
+ wrerr = DISPLAYED;
+ }
}
if (close(ofd) == -1) {
wrerr = YES;