From 190edc6527e2d9bced3ad6a984b63831529fce1b Mon Sep 17 00:00:00 2001 From: Maghuro <1546139+maghuro@users.noreply.github.com> Date: Thu, 24 Sep 2026 01:48:45 +0100 Subject: [PATCH] Safely escape values written through sed --- MerlinAU.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/MerlinAU.sh b/MerlinAU.sh index 7a17e739..5fe6325e 100644 --- a/MerlinAU.sh +++ b/MerlinAU.sh @@ -1685,7 +1685,7 @@ Get_Custom_Setting() } ##----------------------------------------## -## Modified by Martinski W. [2026-Aug-16] ## +## Modified by maghuro [2026-Sep-24] ## ##----------------------------------------## Update_Custom_Settings() { @@ -1715,7 +1715,7 @@ Update_Custom_Settings() then if [ "$setting_value" != "$(grep "^$setting_type" "$CONFIG_FILE" | cut -f2 -d' ')" ] then - fixedVal="$(echo "$setting_value" | sed 's/[\/&]/\\&/g')" + fixedVal="$(printf '%s' "$setting_value" | sed 's/[\/&\\]/\\&/g')" sed -i "s/^${setting_type}.*/$setting_type $fixedVal/" "$CONFIG_FILE" fi else @@ -1743,7 +1743,7 @@ Update_Custom_Settings() oldVal="$(grep "^${setting_type}=" "$CONFIG_FILE" | awk -F '=' '{print $2}' | sed "s/['\"]//g")" if [ -z "$oldVal" ] || [ "$oldVal" != "$setting_value" ] then - fixedVal="$(echo "$setting_value" | sed 's/[\/.,*-]/\\&/g')" + fixedVal="$(printf '%s' "$setting_value" | sed 's/[\/&\\]/\\&/g')" sed -i "s/${setting_type}=.*/${setting_type}=\"${fixedVal}\"/" "$CONFIG_FILE" fi else @@ -1801,7 +1801,7 @@ Update_Custom_Settings() oldVal="$(grep "^${setting_type}=" "$CONFIG_FILE" | awk -F '=' '{print $2}' | sed "s/['\"]//g")" if [ -z "$oldVal" ] || [ "$oldVal" != "$setting_value" ] then - fixedVal="$(echo "$setting_value" | sed 's/[\/&]/\\&/g')" + fixedVal="$(printf '%s' "$setting_value" | sed 's/[\/&\\]/\\&/g')" sed -i "s/^${setting_type}=.*/${setting_type}=\"${fixedVal}\"/" "$CONFIG_FILE" fi else