Follow-up Comment #1, bug #14070 (project findutils):
Looks like a bug in the fts implementation:
I'm still investigating this problem, but I'm seeing some odd
behaviour with fts(). I have a directory layout like this:-
$ find find1 -ls
1299693 4 drwxr-xr-x 3 james users 4096 Aug 8 20:33 find1
1299705 4 drwxr-xr-x 2 james users 4096 Aug 8 20:33
find1/dir1
1299729 0 lrwxrwxrwx 1 james users 4 Aug 8 20:33
+find1/symlink_to_dir1 -> dir1
If I invoke fts_open() with the FTS_LOGICAL flag and do not set
FTS_TIGHT_CYCLE_CHECK, then fts_read() returns FTS_DC in
ent->fts_info. However, with the same directory layout FTS_DC is not set if
FTS_TIGHT_CYCLE_CHECK is set.
fts_options Result
FTS_NOSTAT|FTS_LOGICAL|FTS_TIGHT_CYCLE_CHECK OK
FTS_NOSTAT|FTS_LOGICAL Loop (wrongly) detected
FTS_NOSTAT|FTS_PHYSICAL OK
This means that I suspect that there may be a problem with
cycle_check() in this case, as called from fts-cycle.c. I have not fully
investigated the problem yet, so I am not sure if there really is a problem.
I have noticed in particular that leave_dir() in fts-cycle.c does
nothing if FTS_TIGHT_CYCLE_CHECK is not set. Perhaps that is related to this
problem.
_______________________________________________________
Reply to this item at:
<http://savannah.gnu.org/bugs/?func=detailitem&item_id=14070>
_______________________________________________
Message sent via/by Savannah
http://savannah.gnu.org/
_______________________________________________
Bug-findutils mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/bug-findutils