Running tests with '.' in the PATH may yield unspecified results,
and is deemed unsafe per se. This includes empty entries as well
which are treated like a '.' entry as per POSIX.
* tests/init.sh (setup_): Add snippet to remove relative and non-
accessible entries from the PATH environment variable.
+2021-11-25 Bernhard Voelker <mail@bernhard-voelker.de>
+
+ test-framework-sh: remove unsafe entries from PATH
+ Running tests with '.' in the PATH may yield unspecified results,
+ and is deemed unsafe per se. This includes empty entries as well
+ which are treated like a '.' entry as per POSIX.
+ * tests/init.sh (setup_): Add snippet to remove relative and non-
+ accessible entries from the PATH environment variable.
+
2021-11-24 Paul Eggert <eggert@cs.ucla.edu>
regex: merge from glibc
for sig_ in 1 2 3 13 15; do
eval "trap 'Exit $(expr $sig_ + 128)' $sig_"
done
+
+ # Remove relative and non-accessible directories from PATH, including '.'
+ # and Zero-length entries.
+ saved_IFS="$IFS"
+ IFS=:
+ new_PATH=
+ sep_=
+ for dir in $PATH; do
+ case "$dir" in
+ /*) test -d "$dir/." || continue
+ new_PATH="${new_PATH}${sep_}${dir}"
+ sep_=':';;
+ esac
+ done
+ IFS="$saved_IFS"
+ PATH="$new_PATH"
+ export PATH
}
# This is a stub function that is run upon trap (upon regular exit and