summaryrefslogtreecommitdiff
path: root/scp.c
diff options
context:
space:
mode:
authordtucker <dtucker>2004-07-08 13:11:44 +0000
committerdtucker <dtucker>2004-07-08 13:11:44 +0000
commitce913a95cca8c6f7114bd6e38fe66677f5ed2b36 (patch)
tree14a049c2ff29322e36c31b31d1dd8dc985381ff3 /scp.c
parent3ad5e74cfd2f0a0a6852a4688bd6b31ecfb55178 (diff)
downloadopenssh-ce913a95cca8c6f7114bd6e38fe66677f5ed2b36.tar.gz
- dtucker@cvs.openbsd.org 2004/07/08 12:47:21
[scp.c] Prevent scp from skipping the file following a double-error. bz #863, ok markus@
Diffstat (limited to 'scp.c')
-rw-r--r--scp.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/scp.c b/scp.c
index 3ae17c9a..e559122a 100644
--- a/scp.c
+++ b/scp.c
@@ -71,7 +71,7 @@
*/
#include "includes.h"
-RCSID("$OpenBSD: scp.c,v 1.115 2004/06/21 17:36:31 avsm Exp $");
+RCSID("$OpenBSD: scp.c,v 1.116 2004/07/08 12:47:21 dtucker Exp $");
#include "xmalloc.h"
#include "atomicio.h"
@@ -946,21 +946,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;