summaryrefslogtreecommitdiffstats
path: root/etc/rc.subr
diff options
context:
space:
mode:
authoravg <avg@FreeBSD.org>2013-03-28 08:13:52 +0000
committeravg <avg@FreeBSD.org>2013-03-28 08:13:52 +0000
commit08dd09547be3ebd3d8f4124b77106d5292de12d7 (patch)
tree3f04489067a75e163980ad270753e41a46ef1d74 /etc/rc.subr
parent7b210bf144ce08f72d6f2ea941e99224a429f7e6 (diff)
downloadFreeBSD-src-08dd09547be3ebd3d8f4124b77106d5292de12d7.zip
FreeBSD-src-08dd09547be3ebd3d8f4124b77106d5292de12d7.tar.gz
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
Diffstat (limited to 'etc/rc.subr')
-rw-r--r--etc/rc.subr8
1 files changed, 7 insertions, 1 deletions
diff --git a/etc/rc.subr b/etc/rc.subr
index 9bff68b..bce2257 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
}
OpenPOWER on IntegriCloud