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

[PATCH v2 01/11] strbuf_read_file(): preserve errno on failure

From
Michael Haggerty <mhagger@alum.mit.edu>
Date
Oct 15, 2014, 15:06 UTC
Message-ID
<1413385583-4872-2-git-send-email-mhagger@alum.mit.edu>
In-Reply-To
<1413385583-4872-1-git-send-email-mhagger@alum.mit.edu>
From: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
This will allow the function to be used in a later patch.
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
---
 strbuf.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/strbuf.c b/strbuf.c
index 0346e74..f1fec58 100644
--- a/strbuf.c
+++ b/strbuf.c
@@ -482,15 +482,18 @@ int strbuf_getwholeline_fd(struct strbuf *sb, int fd, int term)
 
 int strbuf_read_file(struct strbuf *sb, const char *path, size_t hint)
 {
-	int fd, len;
+	int fd, len, saved_errno;
 
 	fd = open(path, O_RDONLY);
 	if (fd < 0)
 		return -1;
 	len = strbuf_read(sb, fd, hint);
+	saved_errno = errno;
 	close(fd);
-	if (len < 0)
+	if (len < 0) {
+		errno = saved_errno;
 		return -1;
+	}
 
 	return len;
 }
-- 
2.1.1
Previous: Michael HaggertyNext: Michael Haggerty
Message 2 of 16 in “Consolidate ref parsing code”
  1. 00/11 Consolidate ref parsing codeMichael Haggerty, Oct 15, 2014
  2. 01/11 strbuf_read_file(): preserve errno on failureMichael Haggerty, Oct 15, 2014
  3. 02/11 handle_missing_loose_ref(): return an intMichael Haggerty, Oct 15, 2014
  4. 03/11 resolve_ref_unsafe(): reverse the logic of the symref conditionalMichael Haggerty, Oct 15, 2014
  5. 04/11 resolve_ref_unsafe(): use skip_prefix() to skip over "ref:"Michael Haggerty, Oct 15, 2014
  6. 05/11 refs.c: refactor resolve_ref_unsafe() to use strbuf internallyMichael Haggerty, Oct 15, 2014
  7. 06/11 refs.c: move ref parsing code out of resolve_ref()Michael Haggerty, Oct 15, 2014
  8. 07/11 handle_missing_loose_ref(): inline functionMichael Haggerty, Oct 15, 2014
  9. 08/11 resolve_gitlink_ref_recursive(): drop arbitrary refname length limitMichael Haggerty, Oct 15, 2014
  10. 09/11 refs.c: rewrite resolve_gitlink_ref() to use parse_ref()Michael Haggerty, Oct 15, 2014
  11. 10/11 resove_gitlink_packed_ref(): inline functionMichael Haggerty, Oct 15, 2014
  12. 11/11 resolve_gitlink_ref(): remove redundant testMichael Haggerty, Oct 15, 2014
  13. Junio C HamanoOct 16, 2014
  14. Junio C HamanoOct 16, 2014
  15. Michael HaggertyOct 16, 2014
  16. Duy NguyenOct 16, 2014

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.