# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
-PATH="/usr/bin:/bin"
+PATH="/usr/sbin:/usr/bin:/sbin:/bin"
export PATH
usage() {
echo " + update"
echo " + upgrade"
echo " + dist-upgrade"
+ echo " + clean"
}
chroots=$(dchroot -l 2>&1 | awk -F": " '{print $2}' | tr ' ' '\n')
method=dchroot
suffix[${#suffix[*]}]="_$(dpkg --print-architecture)"
+ allowed_filter='.'
elif [ -x /usr/bin/schroot ] ; then
chroots=$(schroot -l | awk -F":" '{print $2}' | grep -- '-dchroot$' )
method=schroot
- suffix="-dchroot"
+ suffix[${#suffix[*]}]=""
suffix[${#suffix[*]}]="-dchroot"
suffix[${#suffix[*]}]="-$(dpkg --print-architecture)-dchroot"
+ allowed_filter='-dchroot$'
else
echo >&2 "Cannot find chroot wrapper."
exit 1
echo >&2 "$CHROOT is not a valid dchroot. Available chroots are:"
echo "$chroots"
exit 1
+elif ! [[ "$requested_chroot" =~ $allowed_filter ]]; then # do not quote the regex
+ echo >&2 "$CHROOT is not a valid dchroot. While it exists, this script may not touch it. Chroot names must match $allowed_filter."
+ exit 1
fi
+
case "$APTCMD" in
-install|remove|purge|build-dep|update|upgrade|dist-upgrade)
+install|remove|purge|build-dep|update|upgrade|dist-upgrade|clean)
# those are the allowed apt sub-commands
;;
*)