From 3377e36a2eb3132a4dc3d75b13fff9eb9c9df3e7 Mon Sep 17 00:00:00 2001 From: Christoph Date: Fri, 27 Mar 2026 09:46:55 +0100 Subject: [PATCH] Fix quoting issues in get_mail_domains.sh for improved robustness --- get_mail_domains.sh | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/get_mail_domains.sh b/get_mail_domains.sh index a913c0a..4bb869d 100755 --- a/get_mail_domains.sh +++ b/get_mail_domains.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -script_dir="$(dirname $(realpath $0))" +script_dir="$(dirname "$(realpath "$0")")" conf_dir="${script_dir}/conf" conf_file="${conf_dir}/get_mail_domains.conf" @@ -30,12 +30,12 @@ DEFAULT_db_name="postfix" clean_up() { # Perform program exit housekeeping - rm -rf $tmp_dir + rm -rf "$tmp_dir" exit $1 } echononl(){ echo X\\c > /tmp/shprompt$$ - if [ `wc -c /tmp/shprompt$$ | awk '{print $1}'` -eq 1 ]; then + if [ "$(wc -c /tmp/shprompt$$ | awk '{print $1}')" -eq 1 ]; then echo "$*\\c" 1>&2 else echo -e -n "$*" 1>&2 @@ -77,14 +77,15 @@ trap clean_up SIGHUP SIGINT SIGTERM clear echo "" -echo -e "\033[32mRunning script \033[1m"$(basename $0)"\033[m .." +echo -e "\033[32mRunning script \033[1m$(basename "$0")\033[m .." echo "" echo "" -echononl " Loading default Configuration values from $(basename ${conf_file}).." +echononl " Loading default Configuration values from $(basename "${conf_file}").." if [[ ! -f "$conf_file" ]]; then echo_skipped else + # shellcheck source=/dev/null source "${conf_file}" > /dev/null 2>&1 if [[ $? -eq 0 ]]; then echo_ok @@ -131,7 +132,7 @@ fi echo "" echononl " Collect supported domains at this server.." if [[ "$db_type" = "mysql" ]] ; then - domains=$(mysql $mysql_credential_args "$db_name" -N -s -e \ + domains=$(mysql "$mysql_credential_args" "$db_name" -N -s -e \ "SELECT domain FROM domain ORDER by domain" 2> "$log_messages") else domains=$(su - postgres -c"psql \"$db_name\" -t -q -c\"SELECT domain FROM domain ORDER by domain\"") @@ -144,16 +145,16 @@ else clean_up 1 fi -echo -e "\n\n \033[37m\033[1mMail Domains supported by this server ("$(hostname -f)"):\033[m\n" -echo "Mail Domains supported by this server ("$(hostname -f)"):" > $out_file -echo "" >> $out_file +echo -e "\n\n \033[37m\033[1mMail Domains supported by this server ($(hostname -f)):\033[m\n" +echo "Mail Domains supported by this server ($(hostname -f)):" > "$out_file" +echo "" >> "$out_file" for domain in $domains ; do [[ "$domain" = "ALL" ]] && continue echo -e " \033[32m$domain\033[m" - echo " $domain" >> $out_file + echo " $domain" >> "$out_file" done -echo "" >> $out_file +echo "" >> "$out_file" echo "" clean_up 0