From: Timo Sirainen Date: Tue, 6 Feb 2018 10:37:34 +0000 (+0200) Subject: fs-posix: Fix iterating directories when readdir() returns DT_UNKNOWN X-Git-Tag: 2.2.35~91 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=34c8465c8505c6000be30357f5e4c54dcbcc05a0;p=thirdparty%2Fdovecot%2Fcore.git fs-posix: Fix iterating directories when readdir() returns DT_UNKNOWN Files were iterated correctly, but directories weren't. This mainly broke directory iteration with NFS when nordirplus mount option was used. --- diff --git a/src/lib-fs/fs-posix.c b/src/lib-fs/fs-posix.c index 3f05a07a1e..5f834de51b 100644 --- a/src/lib-fs/fs-posix.c +++ b/src/lib-fs/fs-posix.c @@ -844,9 +844,9 @@ static const char *fs_posix_iter_next(struct fs_iter *_iter) #ifdef HAVE_DIRENT_D_TYPE switch (d->d_type) { case DT_UNKNOWN: - if (!fs_posix_iter_want(iter, d->d_name)) - break; - /* fall through */ + if (fs_posix_iter_want(iter, d->d_name)) + return d->d_name; + break; case DT_REG: case DT_LNK: if ((iter->iter.flags & FS_ITER_FLAG_DIRS) == 0)