summaryrefslogtreecommitdiff
path: root/io/fts.c
diff options
context:
space:
mode:
Diffstat (limited to 'io/fts.c')
-rw-r--r--io/fts.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/io/fts.c b/io/fts.c
index 5e57eaf1b6..cfc8fa656d 100644
--- a/io/fts.c
+++ b/io/fts.c
@@ -570,7 +570,7 @@ fts_build(sp, type)
register FTS *sp;
int type;
{
- register struct dirent *dp;
+ register struct dirent dirbuf, *dp;
register FTSENT *p, *head;
register int nitems;
FTSENT *cur, *tail;
@@ -660,7 +660,8 @@ fts_build(sp, type)
/* Read the directory, attaching each entry to the `link' pointer. */
adjaddr = NULL;
- for (head = tail = NULL, nitems = 0; dp = readdir(dirp);) {
+ for (head = tail = NULL, nitems = 0;
+ __readdir_r (dirp, &dirbuf, &dp) >= 0;) {
int namlen;
if (!ISSET(FTS_SEEDOT) && ISDOT(dp->d_name))