summaryrefslogtreecommitdiff
path: root/scp.c
diff options
context:
space:
mode:
Diffstat (limited to 'scp.c')
-rw-r--r--scp.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/scp.c b/scp.c
index 75e50ce25..86276d6de 100644
--- a/scp.c
+++ b/scp.c
@@ -75,7 +75,7 @@
75 */ 75 */
76 76
77#include "includes.h" 77#include "includes.h"
78RCSID("$OpenBSD: scp.c,v 1.42 2000/10/14 10:07:21 markus Exp $"); 78RCSID("$OpenBSD: scp.c,v 1.43 2000/10/18 18:23:02 markus Exp $");
79 79
80#include "ssh.h" 80#include "ssh.h"
81#include "xmalloc.h" 81#include "xmalloc.h"
@@ -838,8 +838,10 @@ bad: run_err("%s: %s", np, strerror(errno));
838 amt = size - i; 838 amt = size - i;
839 count += amt; 839 count += amt;
840 do { 840 do {
841 j = atomicio(read, remin, cp, amt); 841 j = read(remin, cp, amt);
842 if (j <= 0) { 842 if (j == -1 && (errno == EINTR || errno == EAGAIN)) {
843 continue;
844 } else if (j <= 0) {
843 run_err("%s", j ? strerror(errno) : 845 run_err("%s", j ? strerror(errno) :
844 "dropped connection"); 846 "dropped connection");
845 exit(1); 847 exit(1);