diff options
author | Ariel Badichi <abadichi@bezeqint.net> | 2008-04-23 04:05:29 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-04-22 21:21:08 -0700 |
commit | 8b1f6de854ae95eb3f4225a71aad29ca086cfd2e (patch) | |
tree | c1baf44b966272055beebd49045f2c9244ec6a82 /copy.c | |
parent | 82881b38235d0a46a4486dc5dc819c5d0ee3f2c1 (diff) | |
download | git-8b1f6de854ae95eb3f4225a71aad29ca086cfd2e.tar.gz |
copy.c: copy_fd - correctly report write errors
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 <abadichi@bezeqint.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'copy.c')
-rw-r--r-- | copy.c | 8 |
1 files changed, 4 insertions, 4 deletions
@@ -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; |