diff options
author | jp161948 <none@none> | 2007-04-27 02:07:51 -0700 |
---|---|---|
committer | jp161948 <none@none> | 2007-04-27 02:07:51 -0700 |
commit | 038a8f41fc75478546db55fe98bd9c7fc5e08b96 (patch) | |
tree | 7a0f2a7f3cf7588502c9c8ccebfeb71f4847c6d6 /usr/src/cmd/ssh/scp/scp.c | |
parent | d75e6a5d480f559280524b60d52730c76a25524f (diff) | |
download | illumos-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.c | 14 |
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; |