Re: rc.subr: disabling globbing while processing devfs rules

From: John Baldwin <jhb_at_freebsd.org>
Date: Mon, 1 Apr 2013 14:06:50 -0400
On Saturday, March 23, 2013 4:41:41 am Andriy Gapon wrote:
> 
> Any objections / concerns for the following change?
> 
> An example.
> This rule in devfs.rules:
> add path da* mode 660 group operator
> and this directory:
> /data
> result in the following rule being actually installed:
> 100 path data group operator mode 660
> 
> Of course, I could refine the pattern in the rule, but I shouldn't have to do
> it, because the pattern is for /dev/ entries, not arbitrary files in the
> filesystem namespace.
> 
> commit 7ce5e9ca5c107e2669f18efa472c1ab14999247c
> Author: Andriy Gapon <avg_at_icyb.net.ua>
> Date:   Sat Mar 23 10:29:39 2013 +0200
> 
>     rc.subr: disabling globbing while processing devfs rules in
> devfs_rulesets_from_file()
> 
>     The rules themselves typically have shell-like patterns and it is incorrect
>     when they get replaced with matching filesystem entries.
> 
>     Shell magic by:	jilles
> 
> diff --git a/etc/rc.subr b/etc/rc.subr
> index f37ede7..9952c82 100644
> --- a/etc/rc.subr
> +++ b/etc/rc.subr
> _at__at_ -1301,7 +1301,7 _at__at_ make_symlink()
>  #
>  devfs_rulesets_from_file()
>  {
> -	local file _err _me
> +	local file _err _me _opts
>  	file="$1"
>  	_me="devfs_rulesets_from_file"
>  	_err=0
> _at__at_ -1314,6 +1314,11 _at__at_ devfs_rulesets_from_file()
>  		debug "$_me: no such file ($file)"
>  		return 0
>  	fi
> +
> +	# Disable globbing so that the rule patterns are not expanded
> +	# by accident with matching filesystem entries.
> +	_opts=$-; set -f
> +
>  	debug "reading rulesets from file ($file)"
>  	{ while read line
>  	do
> _at__at_ -1360,6 +1365,7 _at__at_ devfs_rulesets_from_file()
>  			break
>  		fi
>  	done } < $file
> +	case $_opts in *f*) ;; *) set +f ;; esac
>  	return $_err
>  }

Why not use 'local -' instead of the $- magic?  That is:

devfs_rulesets_from_file()
{
   local file _err _me -

   ...
   set -f
   ...
}

That would seem to be simpler.

-- 
John Baldwin
Received on Mon Apr 01 2013 - 17:01:57 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:36 UTC