From: Paul Eggert Date: Thu, 12 Sep 2019 06:22:46 +0000 (-0700) Subject: Fix directory-files-and-attributes race X-Git-Tag: emacs-27.0.90~1551^2~95 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=f7228a6479cc8c88a23138980d958c4c431dd6a5;p=emacs.git Fix directory-files-and-attributes race * src/dired.c (directory_files_internal): Fix race condition: when some other process removed a file between the readdir and the ensuing lstat, directory-files-and-attributes would return a list containing nil. --- diff --git a/src/dired.c b/src/dired.c index 7bc4b83fd77..58fa848e2e3 100644 --- a/src/dired.c +++ b/src/dired.c @@ -295,7 +295,8 @@ directory_files_internal (Lisp_Object directory, Lisp_Object full, { Lisp_Object fileattrs = file_attributes (fd, dp->d_name, directory, name, id_format); - list = Fcons (Fcons (finalname, fileattrs), list); + if (!NILP (fileattrs)) + list = Fcons (Fcons (finalname, fileattrs), list); } else list = Fcons (finalname, list);