[CLAMP,COMMON] Escape special chars in mysql passwords 33/112033/1
authorKrzysztof Opasiak <k.opasiak@samsung.com>
Wed, 2 Sep 2020 09:02:12 +0000 (11:02 +0200)
committerKrzysztof Opasiak <k.opasiak@samsung.com>
Wed, 2 Sep 2020 09:02:12 +0000 (11:02 +0200)
Fix both clamp and common mariadb-galera instances to make sure that
special characters in passwords are escaped properly.

Issue-ID: OOM-2328
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
Change-Id: Iee48523d36d404ad7b21515f0d205f2f60a507ed

kubernetes/clamp/charts/mariadb/resources/config/init/docker-entrypoint.sh
kubernetes/common/mariadb-galera/resources/config/configure-mysql.sh

index 6c69694..71f32e2 100755 (executable)
@@ -18,6 +18,11 @@ for arg; do
        esac
 done
 
+prepare_password()
+{
+       echo "$1" | sed -e "s/'/\\\\'/g; s/\"/\\\\\"/g"
+}
+
 # usage: file_env VAR [DEFAULT]
 #    ie: file_env 'XYZ_DB_PASSWORD' 'example'
 # (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of
@@ -36,7 +41,7 @@ file_env() {
        elif [ "${!fileVar:-}" ]; then
                val="$(< "${!fileVar}")"
        fi
-       val=`echo -n $val | sed -e "s/'/''/g"`
+       val=`prepare_password $val`
        export "$var"="$val"
        unset "$fileVar"
 }
index 42c5c89..6787617 100755 (executable)
@@ -32,8 +32,9 @@ if [ -z "$MYSQL_INITDB_SKIP_TZINFO" ]; then
        mysql_tzinfo_to_sql /usr/share/zoneinfo | sed 's/Local time zone must be set--see zic manual page/FCTY/' | "${mysql[@]}" mysql
 fi
 
-function prepare_password {
-       echo -n $1 | sed -e "s/'/''/g"
+prepare_password()
+{
+       echo "$1" | sed -e "s/'/\\\\'/g; s/\"/\\\\\"/g"
 }
 
 mysql_root_password=`prepare_password $MYSQL_ROOT_PASSWORD`