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

[PATCH] dir.c: print correct errno when opendir() fails

From
Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Date
Jan 18, 2018, 09:50 UTC
Message-ID
<20180118095036.29422-1-pclouds@gmail.com>

The call invalidate_directory() between opendir() and warning_errno() in theory could make some system calls and change errno. Prevent that by warning immediately after opendir().

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 This is on top of nd/fix-untracked-cache-invalidation which is now on
 'next'. Sorry I waited too long to send the replacement and it's now
 too late.
 dir.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/dir.c b/dir.c
index dd1e50c328..55736d3e2a 100644
--- a/dir.c
+++ b/dir.c
@@ -1795,14 +1795,14 @@ static int open_cached_dir(struct cached_dir *cdir,
 		return 0;
 	c_path = path->len ? path->buf : ".";
 	cdir->fdir = opendir(c_path);
+	if (!cdir->fdir)
+		warning_errno(_("could not open directory '%s'"), c_path);
 	if (dir->untracked) {
 		invalidate_directory(dir->untracked, untracked);
 		dir->untracked->dir_opened++;
 	}
-	if (!cdir->fdir) {
-		warning_errno(_("could not open directory '%s'"), c_path);
+	if (!cdir->fdir)
 		return -1;
-	}
 	return 0;
 }
 
-- 
2.15.1.600.g899a5f85c6
Next: Junio C Hamano
Message 1 of 12 in “dir.c: print correct errno when opendir() fails”
  1. dir.c: print correct errno when opendir() failsNguyễn Thái Ngọc Duy, Jan 18, 2018
  2. Junio C HamanoJan 19, 2018
  3. Duy NguyenJan 21, 2018
  4. 0/5 nd/fix-untracked-cache-invalidation updatesNguyễn Thái Ngọc Duy, Jan 24, 2018
  5. 1/5 status: add a failing test showing a core.untrackedCache bugNguyễn Thái Ngọc Duy, Jan 24, 2018
  6. 2/5 dir.c: avoid stat() in valid_cached_dir()Nguyễn Thái Ngọc Duy, Jan 24, 2018
  7. 3/5 dir.c: fix missing dir invalidation in untracked codeNguyễn Thái Ngọc Duy, Jan 24, 2018
  8. 4/5 update-index doc: note a fixed bug in the untracked cacheNguyễn Thái Ngọc Duy, Jan 24, 2018
  9. 5/5 dir.c: stop ignoring opendir() error in open_cached_dir()Nguyễn Thái Ngọc Duy, Jan 24, 2018
  10. Ævar Arnfjörð BjarmasonFeb 1, 2018
  11. Ævar Arnfjörð BjarmasonJan 24, 2018
  12. Junio C HamanoJan 24, 2018

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.