From 55e4f9a3f6b39cb87fc55567b7a57660e87f4b09 Mon Sep 17 00:00:00 2001
From: Jim Meyering <jim@meyering.net>
Date: Mon, 9 Oct 2006 12:15:39 +0000
Subject: [PATCH] * 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

---
 lib/ChangeLog   | 6 ++++++
 lib/fts-cycle.c | 2 +-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/lib/ChangeLog b/lib/ChangeLog
index cd9787bae0..2f680fc3fd 100644
--- a/lib/ChangeLog
+++ b/lib/ChangeLog
@@ -1,3 +1,9 @@
+2006-10-09  Jim Meyering  <jim@meyering.net>
+
+	* 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
+
 2006-10-09  Jim Meyering  <jim@meyering.net>
 
 	* lchown.c: Include <sys/stat.h> before "stat-macros.h".
diff --git a/lib/fts-cycle.c b/lib/fts-cycle.c
index 8edf26ee4d..669db58f55 100644
--- a/lib/fts-cycle.c
+++ b/lib/fts-cycle.c
@@ -140,7 +140,7 @@ leave_dir (FTS *fts, FTSENT *ent)
   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);
     }
-- 
2.39.5