changeset 167:3dfa2892b2f7

More proper quoting in profile handling in the RC script
author Franz Glasner <fzglas.hg@dom66.de>
date Sat, 25 Feb 2023 17:52:04 +0100
parents ce7301d11ffb
children 0b893d459837
files uwsginl/files/uwsginl.in
diffstat 1 files changed, 11 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/uwsginl/files/uwsginl.in	Thu Nov 03 09:27:58 2022 +0100
+++ b/uwsginl/files/uwsginl.in	Sat Feb 25 17:52:04 2023 +0100
@@ -98,19 +98,20 @@
 if [ -n "${uwsginl_profiles}" ]; then
 	if [ -n "$2" ]; then
 		profile="$2"
-		if ! is_uwsginl_profile $profile; then
+		profilecfg="$(echo -n "${profile}" | /usr/bin/tr -- '-:.@/$*+~=!()|' '_')"
+		if ! is_uwsginl_profile $profile ; then
 			echo "$0: no such profile defined in uwsginl_profiles."
 			exit 1
 		fi
-		eval uwsginl_configfile=\${uwsginl_${profile}_configfile:-"%%PREFIX%%/etc/uwsginl/uwsginl-${profile}.ini"}
-		eval uwsginl_logfile=\${uwsginl_${profile}_logfile:-"/var/log/${name}-${profile}.log"}
-		eval uwsginl_pidfile=\${uwsginl_${profile}_pidfile:-"/var/run/${name}-${profile}.pid"}
-		eval uwsginl_uid=\${uwsginl_${profile}_uid:-"${uwsginl_uid}"}
-		eval uwsginl_gid=\${uwsginl_${profile}_gid:-"${uwsginl_gid}"}
-		eval uwsginl_flags=\${uwsginl_${profile}_flags-"${uwsginl_flags}"}
-		eval uwsginl_emperor=\${uwsginl_${profile}_emperor:-"${uwsginl_emperor}"}
-		eval uwsginl_vassals_dir=\${uwsginl_${profile}_vassals_dir:-"%%PREFIX%%/etc/uwsginl/vassals-${profile}/"}
-		eval uwsginl_procname=\${uwsginl_${profile}_procname:-""}
+		eval uwsginl_configfile="\"\${uwsginl_${profilecfg}_configfile:-%%PREFIX%%/etc/uwsginl/uwsginl-${profile}.ini}\""
+		eval uwsginl_logfile="\"\${uwsginl_${profilecfg}_logfile:-/var/log/${name}-${profile}.log}\""
+		eval uwsginl_pidfile="\"\${uwsginl_${profilecfg}_pidfile:-/var/run/${name}-${profile}.pid}\""
+		eval uwsginl_uid="\"\${uwsginl_${profilecfg}_uid:-${uwsginl_uid}}\""
+		eval uwsginl_gid="\"\${uwsginl_${profilecfg}_gid:-${uwsginl_gid}}\""
+		eval uwsginl_flags="\"\${uwsginl_${profilecfg}_flags-${uwsginl_flags}}\""
+		eval uwsginl_emperor="\"\${uwsginl_${profilecfg}_emperor:-${uwsginl_emperor}}\""
+		eval uwsginl_vassals_dir="\"\${uwsginl_${profilecfg}_vassals_dir:-%%PREFIX%%/etc/uwsginl/vassals-${profile}/}\""
+		eval uwsginl_procname="\"\${uwsginl_${profilecfg}_procname:-}\""
 	elif [ -n "$1" ]; then
 		for profile in ${uwsginl_profiles}; do
 			echo "Processing ${name} profile: ${profile}"