From: Jim Meyering Date: Sat, 3 Dec 1994 20:38:20 +0000 (+0000) Subject: (du_files): Handle very low-probability fchdir failure (when errno != 0 X-Git-Tag: textutils-1_12_1~421 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1d6dc36be9696230119410e42e2fb163f8791aa7;p=thirdparty%2Fcoreutils.git (du_files): Handle very low-probability fchdir failure (when errno != 0 && errno != EINVAL). --- diff --git a/src/du.c b/src/du.c index 3cbaeb0921..53711537a7 100644 --- 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