From 08dd09547be3ebd3d8f4124b77106d5292de12d7 Mon Sep 17 00:00:00 2001 From: avg Date: Thu, 28 Mar 2013 08:13:52 +0000 Subject: [PATCH] rc.subr: disabling globbing while processing devfs rules The rules themselves typically have shell-like patterns and it is incorrect when they get replaced with matching filesystem entries. Shell magic by: jilles MFC after: 2 weeks --- etc/rc.subr | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/etc/rc.subr b/etc/rc.subr index 9bff68bb9344..bce2257ecb8e 100644 --- a/etc/rc.subr +++ b/etc/rc.subr @@ -1285,7 +1285,7 @@ make_symlink() # devfs_rulesets_from_file() { - local file _err _me + local file _err _me _opts file="$1" _me="devfs_rulesets_from_file" _err=0 @@ -1298,6 +1298,11 @@ 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 @@ -1344,6 +1349,7 @@ devfs_rulesets_from_file() break fi done } < $file + case $_opts in *f*) ;; *) set +f ;; esac return $_err }