dirfd() always return -2 on OS/2 kLIBC 0.6. This will be fixed in 0.7.

* lib/fts.c (fts_build): Do not check dir_fd on OS/2 kLIBC.

Patches from coreutils 8.8 by Paul Smedley.
---
 lib/fts.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/lib/fts.c b/lib/fts.c
index 7f3cdc7..02ebdde 100644
--- a/lib/fts.c
+++ b/lib/fts.c
@@ -1403,7 +1403,11 @@ fts_build (register FTS *sp, int type)
                     if (0 <= dir_fd)
                       set_cloexec_flag (dir_fd, true);
                   }
+#ifdef __KLIBC__ /* will be fixed in libc 0.7 */
+                if (fts_safe_changedir(sp, cur, dir_fd, cur->fts_accpath)) {
+#else
                 if (dir_fd < 0 || fts_safe_changedir(sp, cur, dir_fd, NULL)) {
+#endif
                         if (nlinks && type == BREAD)
                                 cur->fts_errno = errno;
                         cur->fts_flags |= FTS_DONTCHDIR;
-- 
1.8.5.2


Reply via email to