Exit 77
fi
+# Having an unsearchable directory in PATH causes execve to fail with EACCES
+# when applied to an unresolvable program name, contrary to the desired ENOENT.
+# Avoid the problem by rewriting PATH to exclude unsearchable directories.
+sanitize_path_()
+{
+ local saved_IFS=$IFS
+ IFS=:
+ set - $PATH
+ IFS=$saved_IFS
+
+ local d d1
+ local colon=
+ local new_path=
+ for d in "$@"; do
+ test -z "$d" && d1=. || d1=$d
+ if ls -d "$d1/." > /dev/null 2>&1; then
+ new_path="$new_path$colon$d"
+ colon=':'
+ fi
+ done
+
+ PATH=$new_path
+ export PATH
+}
+
skip_test_()
{
echo "$0: skipping test: $@" | head -1 1>&9
|| skip_test_ "This test is useful only with SELinux in Enforcing mode."
}
-
require_openat_support_()
{
# Skip this test if your system has neither the openat-style functions
compare() { cmp "$@"; }
fi
+sanitize_path_
+
# Initialize; all bourne shell scripts end with "Exit $fail".
fail=0