git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] copy.c: copy_fd - correctly report write errors

From
ABAriel Badichi <abadichi@bezeqint.net>
Date
Apr 23, 2008, 00:22 UTC
Message-ID
<87r6cxpes0.fsf@sneeze.site>

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>
---
 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
Message 1 of 1 in “copy.c: copy_fd - correctly report write errors”
  1. copy.c: copy_fd - correctly report write errorsAriel Badichi, Apr 23, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.