diff sbin/ftjail @ 245:61861d36758c

Ensure that no options are really given when no options are allowed
author Franz Glasner <fzglas.hg@dom66.de>
date Sat, 10 Sep 2022 18:16:37 +0200
parents 6e632f459818
children bdee72ff7dbd
line wrap: on
line diff
--- a/sbin/ftjail	Sat Sep 10 17:38:48 2022 +0200
+++ b/sbin/ftjail	Sat Sep 10 18:16:37 2022 +0200
@@ -73,6 +73,18 @@
 umask 0022
 
 
+#
+# Ensure that no options are given
+#
+_ensure_no_options() {
+    local _opt
+
+    while getopts ":" _opt ; do
+        [ "${_opt}" = '?' ] && { echo "ERROR: no option allowed" 1>&2; exit 2; }
+    done    
+}
+
+
 _get_dataset_for_mountpoint() {
     : 'Use `mount -t zfs -p` to determine the ZFS dataset for a given mountpoint.
 
@@ -103,6 +115,8 @@
 
     local _ds_base
 
+    _ensure_no_options "$@"
+
     _p_base="${1-}"
     _name="${2-}"
     _dry_run="${3-}"
@@ -145,6 +159,8 @@
 
     local _ds_skel _child _child_zfsopts
 
+    _ensure_no_options "$@"
+
     _p_skel="${1-}"
     _name="${2-}"
     _dry_run="${3-}"
@@ -219,6 +235,8 @@
     local _zfsopts
     local _ds_base _ds_skel
 
+    _ensure_no_options "$@"
+
     _zfsopts="-u -o canmount=noauto"
 
     _p_base="${1-}"
@@ -247,6 +265,8 @@
 
     local _dir
 
+    _ensure_no_options "$@"
+
     _mp="${1-}"
     _basetxz="${2-}"
 
@@ -461,6 +481,8 @@
 command_umount_tmpl() {
     local _ds_base _ds_skel
 
+    _ensure_no_options "$@"
+
     _ds_base="${1-}"
     _ds_skel="${2-}"
 
@@ -484,6 +506,8 @@
 
     local _dir _dirpart _basepart
 
+    _ensure_no_options "$@"
+
     _mountpoint="${1-}"
 
     [ -z "${_mountpoint}" ] && { echo "ERROR: no mountpoint given" 2>&1; return 2; }