From da95763b3b711b6b5482e9f6a371b8c4995692fd Mon Sep 17 00:00:00 2001 From: Ed Maste Date: Wed, 28 Feb 2018 17:20:10 +0000 Subject: [PATCH] rc.d/jail: avoid misinterpreting expr arguments (Due to some misconfiguration) I ended up with _mask set to "-v", and /etc/rc.d/jail then failed with "expr: illegal option -- v". Use "expr --" so that variable content is never interpreted as an option. Reviewed by: jamie Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D14535 --- etc/rc.d/jail | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/etc/rc.d/jail b/etc/rc.d/jail index 8cf830a139a3..9e6c7e847dba 100755 --- a/etc/rc.d/jail +++ b/etc/rc.d/jail @@ -316,7 +316,7 @@ jail_extract_address() # Extract the prefix/netmask/prefixlen part by cutting off the address. _mask=${_r} - _mask=`expr "${_mask}" : "${_addr}\(.*\)"` + _mask=`expr -- "${_mask}" : "${_addr}\(.*\)"` # Identify type {inet,inet6}. case "${_addr}" in @@ -366,8 +366,8 @@ jail_handle_ips_option() while [ ${#_x} -gt 0 ]; do case "${_x}" in *,*) # Extract the first argument and strip it off the list. - _i=`expr "${_x}" : '^\([^,]*\)'` - _x=`expr "${_x}" : "^[^,]*,\(.*\)"` + _i=`expr -- "${_x}" : '^\([^,]*\)'` + _x=`expr -- "${_x}" : "^[^,]*,\(.*\)"` ;; *) _i=${_x} _x=""