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

[PATCH] sha1_file: make sure correct error is propagated

From
Sam Vilain <sam@vilain.net>
Date
Nov 14, 2008, 07:19 UTC
Message-ID
<1226647174-15844-1-git-send-email-sam@vilain.net>
From: Sam Vilain <samv@maia.lan>

In the case that a object directory exists, but is not writable, the code path that tries to create it is followed and the returned errno and path that of the directory tried to be created. The resultant error message is confusing.

So, if the mkstemp() fails with EPERM, don't try to create the directory - return straight away.

Signed-off-by: Sam Vilain <sam@vilain.net>
---
 sha1_file.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/sha1_file.c b/sha1_file.c
index ab2b520..7662330 100644
--- a/sha1_file.c
+++ b/sha1_file.c
@@ -2231,7 +2231,7 @@ static int create_tmpfile(char *buffer, size_t bufsiz, const char *filename)
 	memcpy(buffer, filename, dirlen);
 	strcpy(buffer + dirlen, "tmp_obj_XXXXXX");
 	fd = mkstemp(buffer);
-	if (fd < 0 && dirlen) {
+	if (fd < 0 && dirlen && (errno != EPERM)) {
 		/* Make sure the directory exists */
 		memcpy(buffer, filename, dirlen);
 		buffer[dirlen-1] = 0;
-- 
debian.1.5.6.1
Next: Francis Galiegue
Message 1 of 9 in “sha1_file: make sure correct error is propagated”
  1. sha1_file: make sure correct error is propagatedSam Vilain, Nov 14, 2008
  2. Francis GaliegueNov 14, 2008
  3. Sam VilainNov 14, 2008
  4. Junio C HamanoNov 14, 2008
  5. Francis GaliegueNov 14, 2008
  6. Andreas EricssonNov 14, 2008
  7. Francis GaliegueNov 14, 2008
  8. Junio C HamanoNov 15, 2008
  9. Sam VilainNov 15, 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.