Sanitize our PATH a bit better, and terminate it correctly in start-stop-daemon.
This commit is contained in:
@@ -137,6 +137,16 @@ KV_to_int() {
|
||||
echo "${KV_int}"
|
||||
}
|
||||
|
||||
_sanitize_path() {
|
||||
local IFS=":" p=
|
||||
for p in ${PATH}; do
|
||||
case "${p}" in
|
||||
/lib/rc/sbin|/bin|/sbin|/usr/bin|/usr/sbin|/usr/local/bin|/usr/local/sbin) ;;
|
||||
*) printf "%s" ":${p}";;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
# Allow our scripts to support zsh
|
||||
if [ -n "${ZSH_VERSION}" ] ; then
|
||||
emulate sh
|
||||
@@ -147,14 +157,9 @@ if [ -n "${ZSH_VERSION}" ] ; then
|
||||
setopt NO_GLOB_SUBST
|
||||
fi
|
||||
|
||||
# Setup a basic $PATH. Just add system default to existing.
|
||||
# This should solve both /sbin and /usr/sbin not present when
|
||||
# doing 'su -c foo', or for something like: PATH= rcscript start
|
||||
case "${PATH}" in
|
||||
/lib/rc/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin) ;;
|
||||
/lib/rc/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:*) ;;
|
||||
*) export PATH="/lib/rc/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:${PATH}" ;;
|
||||
esac
|
||||
# Add our bin to $PATH
|
||||
export PATH="/lib/rc/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin$(_sanitize_path "${PATH}")"
|
||||
unset _sanitize_path
|
||||
|
||||
for arg in "$@" ; do
|
||||
case "${arg}" in
|
||||
|
Reference in New Issue
Block a user