index 20092757d395dfa4af99a6062e5e2cc0fa5e00c3..e1cd5d06503d93f6b400a3911e6b61ff327190ca 100644 (file)
--- a/copy.c
+++ b/copy.c
if (!len)
break;
if (len < 0) {
+ int read_error;
if (errno == EAGAIN)
continue;
+ read_error = errno;
+ close(ifd);
return error("copy-fd: read returned %s",
- strerror(errno));
+ strerror(read_error));
}
while (1) {
int written = write(ofd, buf, len);