changeset 452:d5591ebc303d

Use "--" for jexec and chroot to accept more unconvenient jail names and/or directories
author Franz Glasner <fzglas.hg@dom66.de>
date Fri, 10 May 2024 13:42:10 +0200
parents e7eba671bd74
children 5194d87e0b4b
files sbin/fjail sbin/fpkg
diffstat 2 files changed, 6 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- 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"
--- 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