changeset 9129:79b0e6e0f7ba

* lib/fts.c (fts_read): Upon failure to chdir into a subdirectory, set fts_info to FTS_DNR, not to FTS_ERR, so that the caller knows it has valid stat data. This bug would cause du not to count the sizes of inaccessible directories. Patch by Jose Maria Plans, reported in http://bugzilla.redhat.com/250077
author Jim Meyering <jim@meyering.net>
date Mon, 30 Jul 2007 12:16:34 +0000
parents a80538d72b35
children 5571ca48ba38
files ChangeLog lib/fts.c
diffstat 2 files changed, 9 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Fri Jul 27 08:49:41 2007 +0000
+++ b/ChangeLog	Mon Jul 30 12:16:34 2007 +0000
@@ -1,3 +1,11 @@
+2007-07-30  Jim Meyering  <jim@meyering.net>
+
+	* lib/fts.c (fts_read): Upon failure to chdir into a subdirectory,
+	set fts_info to FTS_DNR, not to FTS_ERR, so that the caller knows
+	it has valid stat data.  This bug would cause du not to count the
+	sizes of inaccessible directories.
+	Patch by Jose Maria Plans, reported in http://bugzilla.redhat.com/250077
+
 2007-07-25  Peter O'Gorman  <peter@pogma.com>
             Bruno Haible  <bruno@clisp.org>
 
--- a/lib/fts.c	Fri Jul 27 08:49:41 2007 +0000
+++ b/lib/fts.c	Mon Jul 30 12:16:34 2007 +0000
@@ -685,7 +685,7 @@
 			/* If fts_build's call to fts_safe_changedir failed
 			   because it was not able to fchdir into a
 			   subdirectory, tell the caller.  */
-			if (p->fts_errno)
+			if (p->fts_errno && p->fts_info != FTS_DNR)
 				p->fts_info = FTS_ERR;
 			LEAVE_DIR (sp, p, "2");
 			return (p);