I found what appears to be a probabilistically harmless bug in
fts-related code. By that, I mean the odds of the bug resulting
in a malfunction (false-positive cycle detection) would seem to
be very small.
I've checked in this fix:
2006-10-09 Jim Meyering <[EMAIL PROTECTED]>
* fts-cycle.c (leave_dir): When "leaving" a top level directory due
to FTS_SKIP, don't copy the parent's uninitialized dev/ino values.
Trigger with e.g., mkdir d && valgrind ./chmod u+rwx d d
Index: lib/fts-cycle.c
===================================================================
RCS file: /sources/gnulib/gnulib/lib/fts-cycle.c,v
retrieving revision 1.7
diff -u -r1.7 fts-cycle.c
--- lib/fts-cycle.c 8 Oct 2006 07:24:56 -0000 1.7
+++ lib/fts-cycle.c 9 Oct 2006 12:14:44 -0000
@@ -140,7 +140,7 @@
else
{
FTSENT *parent = ent->fts_parent;
- if (parent != NULL)
+ if (parent != NULL && 0 <= parent->fts_level)
CYCLE_CHECK_REFLECT_CHDIR_UP (fts->fts_cycle.state,
*(parent->fts_statp), *st);
}