diff options
author | jilles <jilles@FreeBSD.org> | 2012-08-09 22:05:40 +0000 |
---|---|---|
committer | jilles <jilles@FreeBSD.org> | 2012-08-09 22:05:40 +0000 |
commit | 4d961f95f8cad07145afdb640f32972b8b61fbaa (patch) | |
tree | 18ee47e8c0a7c9bf10b3bfb8e65e16867d40ec52 /lib | |
parent | 1f0ad947a6c993e63b43f3e0425966cb88699f30 (diff) | |
download | FreeBSD-src-4d961f95f8cad07145afdb640f32972b8b61fbaa.zip FreeBSD-src-4d961f95f8cad07145afdb640f32972b8b61fbaa.tar.gz |
nftw(): POSIX says directories causing loops should be silently skipped.
Formerly, loops caused nftw() to abort the traversal with ELOOP.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/libc/gen/nftw.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/lib/libc/gen/nftw.c b/lib/libc/gen/nftw.c index 5bca2de..a338e5a 100644 --- a/lib/libc/gen/nftw.c +++ b/lib/libc/gen/nftw.c @@ -65,6 +65,8 @@ nftw(const char *path, int (*fn)(const char *, const struct stat *, int, continue; fnflag = FTW_D; break; + case FTS_DC: + continue; case FTS_DNR: fnflag = FTW_DNR; break; @@ -87,9 +89,6 @@ nftw(const char *path, int (*fn)(const char *, const struct stat *, int, case FTS_SLNONE: fnflag = FTW_SLN; break; - case FTS_DC: - errno = ELOOP; - /* FALLTHROUGH */ default: error = -1; goto done; |