Skip to content

Commit

Permalink
copy.c: copy_fd - correctly report write errors
Browse files Browse the repository at this point in the history
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 <[email protected]>
Signed-off-by: Junio C Hamano <[email protected]>
  • Loading branch information
Ariel Badichi authored and gitster committed Apr 23, 2008
1 parent 82881b3 commit 8b1f6de
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions copy.c
Original file line number Diff line number Diff line change
Expand Up @@ -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));
Expand All @@ -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));
}
}
}
Expand All @@ -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;
Expand Down

0 comments on commit 8b1f6de

Please sign in to comment.