[PATCH] copy.c: copy_fd - correctly report write errors
From: Ariel Badichi <hidden>
Date: 2016-06-15 22:44:31
Subsystem:
the rest · Maintainer:
Linus Torvalds
From: Ariel Badichi <hidden>
Date: 2016-06-15 22:44:31
Subsystem:
the rest · Maintainer:
Linus Torvalds
Previously, the errno could have been lost due to an intervening close() call. This patch also contains minor cosmetic changes. Signed-off-by: Ariel Badichi <redacted> --- copy.c | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/copy.c b/copy.c
index afc4fbf..e54d15a 100644
--- a/copy.c
+++ b/copy.c@@ -9,8 +9,7 @@ int copy_fd(int ifd, int ofd) if (!len) break; if (len < 0) { - int read_error; - read_error = errno; + int read_error = errno; close(ifd); return error("copy-fd: read returned %s", strerror(read_error));
@@ -25,9 +24,10 @@ int copy_fd(int ifd, int ofd) close(ifd); return error("copy-fd: write returned 0"); } else { + int write_error = errno; close(ifd); return error("copy-fd: write returned %s", - strerror(errno)); + strerror(write_error)); } } }
@@ -48,7 +48,7 @@ int copy_file(const char *dst, const char *src, int mode) } status = copy_fd(fdi, fdo); if (close(fdo) != 0) - return error("%s: write error: %s", dst, strerror(errno)); + return error("%s: close error: %s", dst, strerror(errno)); if (!status && adjust_shared_perm(dst)) return -1;
--
1.5.5.1.57.g5909c