aboutsummaryrefslogtreecommitdiff
path: root/usr.sbin/sysrc
diff options
context:
space:
mode:
authorDevin Teske <dteske@FreeBSD.org>2018-05-28 23:34:23 +0000
committerDevin Teske <dteske@FreeBSD.org>2018-05-28 23:34:23 +0000
commita03d5f8b02a5a5d1009121ed4480dc9d13fb1fc1 (patch)
tree5cbc90d7512247a88c37dca345147534fa082d9c /usr.sbin/sysrc
parent7b0a9efa99c35637068c411de953f001d0b97c0f (diff)
Notes
Diffstat (limited to 'usr.sbin/sysrc')
-rw-r--r--usr.sbin/sysrc/sysrc12
1 files changed, 12 insertions, 0 deletions
diff --git a/usr.sbin/sysrc/sysrc b/usr.sbin/sysrc/sysrc
index 1da537fd5992..404b7865ac7c 100644
--- a/usr.sbin/sysrc/sysrc
+++ b/usr.sbin/sysrc/sysrc
@@ -370,6 +370,18 @@ if [ "$LIST_SERVICE_CONFS" ]; then
fi
#
+# Validate arguments
+#
+for name in "$@"; do
+ # NB: shell expansion syntax removed first
+ name="${name%%:[+=-]*}"
+ name="${name%%[%#+=-]*}"
+ [ "$name" = "${name#*[!$VALID_VARNAME_CHARS]}" ] || die \
+ "%s: %s: name contains characters not allowed in shell" \
+ "$pgm" "$name"
+done
+
+#
# Process `-s name' argument
#
if [ "$SERVICE" -a ! "${RC_CONFS+set}" ]; then