44 lines
1.0 KiB
Diff
44 lines
1.0 KiB
Diff
diff -urNp coreutils-8.1-orig/tests/test-lib.sh coreutils-8.1/tests/test-lib.sh
|
|
--- coreutils-8.1-orig/tests/test-lib.sh 2009-11-24 09:35:12.000000000 +0100
|
|
+++ coreutils-8.1/tests/test-lib.sh 2009-11-24 09:37:17.000000000 +0100
|
|
@@ -23,6 +23,31 @@ if test $? != 11; then
|
|
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
|
|
@@ -396,5 +421,7 @@ else
|
|
compare() { cmp "$@"; }
|
|
fi
|
|
|
|
+sanitize_path_
|
|
+
|
|
# Initialize; all bourne shell scripts end with "Exit $fail".
|
|
fail=0
|