diff options
author | Dave Reisner <dreisner@archlinux.org> | 2011-11-06 19:13:43 -0500 |
---|---|---|
committer | Dave Reisner <dreisner@archlinux.org> | 2011-11-06 19:15:52 -0500 |
commit | ec9ec4ad367f494165ced611af6b2641e8cb2472 (patch) | |
tree | c282490743d12406421003c352a060a15d7e5605 /rc.sysinit | |
parent | fe1695420fab1476dec28d70b91282c9b30d161e (diff) |
functions: implement a environment file parser
This adds a 'parse_envfile' function that reads files such as
/etc/locale.conf and /etc/vconsole.conf without sourcing them as bash
logic. Several benefits are realized from this:
- Impossible to execute arbitrary code
- Bad syntax won't prevent the entire file from being read
- Possible to limit what variables are allowed
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
Diffstat (limited to 'rc.sysinit')
-rwxr-xr-x | rc.sysinit | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -237,7 +237,7 @@ if [[ $HOSTNAME ]]; then fi if [[ -s /etc/locale.conf ]]; then - . /etc/locale.conf + parse_envfile /etc/locale.conf "LANG" [[ $LANG ]] && LOCALE=$LANG fi if [[ ${LOCALE,,} =~ utf ]]; then @@ -263,7 +263,7 @@ else fi if [[ -s /etc/vconsole.conf ]]; then - . /etc/vconsole.conf + parse_envfile /etc/vconsole.conf "${vconsolevars[@]}" [[ $FONT ]] && CONSOLEFONT=$FONT [[ $FONT_MAP ]] && CONSOLEMAP=$FONT_MAP fi |