From 1040cdecbbd34f61601e0636597ab4e4629c44f3 Mon Sep 17 00:00:00 2001 From: Matt Jolly Date: Tue, 29 Jun 2021 14:45:54 +1000 Subject: [PATCH] Escape special characters in DB_PASS environment variable when substituting with sed Characters: - / - \ - $ - & --- root/etc/cont-init.d/50-config | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/root/etc/cont-init.d/50-config b/root/etc/cont-init.d/50-config index 0dd0e6f..89243bb 100644 --- a/root/etc/cont-init.d/50-config +++ b/root/etc/cont-init.d/50-config @@ -55,10 +55,11 @@ fi if [ "${DB_USER}" ]; then echo "Running config - db_user set" + ESCAPED_PASSWORD=$(sed -e 's/[$\/&]/\\&/g' <<< $DB_PASS) sed -i "s/DB_HOST=localhost/DB_HOST=${DB_HOST}/g" /config/www/.env sed -i "s/DB_DATABASE=database_database/DB_DATABASE=${DB_DATABASE}/g" /config/www/.env sed -i "s/DB_USERNAME=database_username/DB_USERNAME=${DB_USER}/g" /config/www/.env - sed -i "s/DB_PASSWORD=database_user_password/DB_PASSWORD=${DB_PASS}/g" /config/www/.env + sed -i "s/DB_PASSWORD=database_user_password/DB_PASSWORD=${ESCAPED_PASSWORD}/g" /config/www/.env fi # set appurl