]> git.ipfire.org Git - thirdparty/coreutils.git/commitdiff
(du_files): Handle very low-probability fchdir failure (when errno != 0
authorJim Meyering <jim@meyering.net>
Sat, 3 Dec 1994 20:38:20 +0000 (20:38 +0000)
committerJim Meyering <jim@meyering.net>
Sat, 3 Dec 1994 20:38:20 +0000 (20:38 +0000)
&& errno != EINVAL).

src/du.c

index 3cbaeb09217c857388f65dfc2bdb9d93d10d4e07..53711537a7d11a4ec212bb24f769c830f5b7eac2 100644 (file)
--- a/src/du.c
+++ b/src/du.c
@@ -325,12 +325,19 @@ du_files (files)
   if (starting_desc < 0)
     error (1, errno, "cannot open current directory");
 
-  /* On SunOS, fchdir returns EINVAL if accounting is enabled,
+  /* On SunOS 4, fchdir returns EINVAL if accounting is enabled,
      so we have to fall back to chdir.  */
-  if (fchdir (starting_desc) && errno == EINVAL)
+  if (fchdir (starting_desc))
     {
-      close (starting_desc);
-      starting_desc = -1;
+      if (errno == EINVAL)
+       {
+         close (starting_desc);
+         starting_desc = -1;
+       }
+      else
+       {
+         error (1, errno, "current directory");
+       }
     }
   if (starting_desc == -1)
 #endif