From 5487310f140e8abed82a6362aa37866a26fa11c6 Mon Sep 17 00:00:00 2001 From: baip Date: Sun, 11 Nov 2018 10:57:14 -0500 Subject: [PATCH] Bug fix: restrict IFS to only the read builtin --- docker/scripts/setup_env | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/docker/scripts/setup_env b/docker/scripts/setup_env index 387dd7e2..b07d42d5 100755 --- a/docker/scripts/setup_env +++ b/docker/scripts/setup_env @@ -80,19 +80,18 @@ EOF [ -e '/app/.env' ] && cat /app/.env >> /tmp/.env.example quote_if_necessary() { - if grep -q -E -e '^".*" *$' -e "^'.*' *$" <<<"$1"; then + if grep -q -E -e '^".*" *$' -e "^'.*' *$" <<<"$*"; then # preserve single or double quotes if they are provided - echo "$1"; + echo "$*"; else # otherwise double quote the string after escaping \, $, ` - echo "\"$(sed -e 's/\\/\\\\/g' -e 's/\$/\\\$/g' -e 's/`/\\`/g' <<<"$1")\"" + echo "\"$(sed -e 's/\\/\\\\/g' -e 's/\$/\\\$/g' -e 's/`/\\`/g' <<<"$*")\"" fi } # Default to the environment variable values set in .env.example -IFS="=" sed -n -r -e 's/^#?([A-Za-z0-9_]+=.*)/\1/p' /tmp/.env.example | \ - while read var value ; do + while IFS='=' read var value ; do huginn_var="HUGINN_$var" val="${!huginn_var:-${!var:-$value}}" echo "$var=$(quote_if_necessary $val)"