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.3.9~2355 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b757d62e117269b28a8db7848003076f3dd4cc1a;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 d55f95aed1..0d416d77af 100644 --- a/src/lib-fs/fs-posix.c +++ b/src/lib-fs/fs-posix.c @@ -846,9 +846,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)