summaryrefslogtreecommitdiffstats
path: root/lib/libc
diff options
context:
space:
mode:
authorjilles <jilles@FreeBSD.org>2012-08-09 22:05:40 +0000
committerjilles <jilles@FreeBSD.org>2012-08-09 22:05:40 +0000
commit4d961f95f8cad07145afdb640f32972b8b61fbaa (patch)
tree18ee47e8c0a7c9bf10b3bfb8e65e16867d40ec52 /lib/libc
parent1f0ad947a6c993e63b43f3e0425966cb88699f30 (diff)
downloadFreeBSD-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/libc')
-rw-r--r--lib/libc/gen/nftw.c5
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;
OpenPOWER on IntegriCloud