# HG changeset patch # User Franz Glasner # Date 1715341330 -7200 # Node ID d5591ebc303def6c52412e4cea077f15a60e36c7 # Parent e7eba671bd745865fa79eb1774e6763b2d02b0ae Use "--" for jexec and chroot to accept more unconvenient jail names and/or directories diff -r e7eba671bd74 -r d5591ebc303d sbin/fjail --- a/sbin/fjail Fri May 10 09:16:57 2024 +0200 +++ b/sbin/fjail Fri May 10 13:42:10 2024 +0200 @@ -129,7 +129,7 @@ if [ -z "${ref_version}" ]; then ref_version=$(/bin/freebsd-version -u) || exit 1 fi - _directory_version=$(chroot "${directory}" /bin/freebsd-version -u) || exit 1 + _directory_version=$(chroot -- "${directory}" /bin/freebsd-version -u) || exit 1 if [ "${ref_version%%-*}" = "${_directory_version%%-*}" ]; then return 0 fi @@ -454,7 +454,7 @@ # Call newaliases within the jail echo "Calling \"newaliases\"" - chroot "${_mp}" /usr/bin/newaliases + chroot -- "${_mp}" /usr/bin/newaliases _pcl="${_mp}/etc/periodic.conf.local" if [ ! -f "${_pcl}" ]; then @@ -490,7 +490,7 @@ echo "monthly_statistics_report_ports=\"YES\"" >> "${_pcl}" echo "Creating system logfiles that are marked for automatic creation ..." - chroot "${_mp}" /usr/sbin/newsyslog -CN + chroot -- "${_mp}" /usr/sbin/newsyslog -CN else echo "WARNING: \"${_pcl}\" exists already -- not changed" diff -r e7eba671bd74 -r d5591ebc303d sbin/fpkg --- a/sbin/fpkg Fri May 10 09:16:57 2024 +0200 +++ b/sbin/fpkg Fri May 10 13:42:10 2024 +0200 @@ -137,7 +137,7 @@ _jail="$1" _host_version=$(/bin/freebsd-version -u) || exit 1 - _jail_version=$(jexec -l "${_jail}" /bin/freebsd-version -u) || exit 1 + _jail_version=$(jexec -l -- "${_jail}" /bin/freebsd-version -u) || exit 1 if [ "${_host_version%%-*}" = "${_jail_version%%-*}" ]; then return 0 fi @@ -151,7 +151,7 @@ ' echo "LOCALHOST: $(/bin/freebsd-version -u)" for _jail in $(jls -N | awk '{if(NR>1)print $1}' | sort); do - echo "${_jail}: $(jexec -l "${_jail}" /bin/freebsd-version -u)" + echo "${_jail}: $(jexec -l -- "${_jail}" /bin/freebsd-version -u)" done } @@ -291,7 +291,7 @@ if has_same_userland_version "${_j}"; then # This prints the value on the *host* also #pkg -j "${_j}" config "${_name}" - jexec "${_j}" pkg config "${_name}" + jexec -- "${_j}" pkg config "${_name}" else echo "${FPKG_SKIPSIGN}SKIPPED because of different userland" fi