From: Jim Meyering <meyer...@redhat.com>

* lib/fts.c (__opendir2): Give it a new parameter, Pdir_fd, rather
than surreptitiously using sole caller's "dir_fd".
---
 lib/fts.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/lib/fts.c b/lib/fts.c
index b8b7c5a..33ecffb 100644
--- a/lib/fts.c
+++ b/lib/fts.c
@@ -1192,7 +1192,7 @@ set_stat_type (struct stat *st, unsigned int dtype)
   st->st_mode = type;
 }

-# define __opendir2(file) \
+#define __opendir2(file, Pdir_fd)                               \
         opendirat((! ISSET(FTS_NOCHDIR) && ISSET(FTS_CWDFD)     \
                    ? sp->fts_cwd_fd : AT_FDCWD),                \
                   file,                                         \
@@ -1201,7 +1201,7 @@ set_stat_type (struct stat *st, unsigned int dtype)
                            && cur->fts_level == FTS_ROOTLEVEL)) \
                     ? O_NOFOLLOW : 0)                           \
                    | (ISSET (FTS_NOATIME) ? O_NOATIME : 0)),    \
-                  &dir_fd)
+                  Pdir_fd)

 /*
  * This is the tricky part -- do not casually change *anything* in here.  The
@@ -1242,7 +1242,7 @@ fts_build (register FTS *sp, int type)

         /* Open the directory for reading.  If this fails, we're done.
            If being called from fts_read, set the fts_info field.  */
-        if ((dirp = __opendir2(cur->fts_accpath)) == NULL) {
+        if ((dirp = __opendir2(cur->fts_accpath, &dir_fd)) == NULL) {
                 if (type == BREAD) {
                         cur->fts_info = FTS_DNR;
                         cur->fts_errno = errno;
-- 
1.7.6.857.gf34cf


Reply via email to