diff --git a/bitnami/pgbouncer/1/debian-11/rootfs/opt/bitnami/scripts/libpgbouncer.sh b/bitnami/pgbouncer/1/debian-11/rootfs/opt/bitnami/scripts/libpgbouncer.sh index b5cfe900a9297..2e68a97f94292 100644 --- a/bitnami/pgbouncer/1/debian-11/rootfs/opt/bitnami/scripts/libpgbouncer.sh +++ b/bitnami/pgbouncer/1/debian-11/rootfs/opt/bitnami/scripts/libpgbouncer.sh @@ -162,6 +162,19 @@ pgbouncer_is_file_external() { fi } +######################## +# Output helper for escaped auth fields +# Arguments: +# $1 - raw username or password +# Returns: +# None +######################### +pgbouncer_escape_auth() { + # replace each " with "" + echo "$1" | sed 's/"/""/g' +} + + ######################## # Ensure PgBouncer is initialized # Globals: @@ -190,7 +203,8 @@ pgbouncer_initialize() { info "Configuring credentials" # Create credentials file if ! pgbouncer_is_file_external "userlist.txt"; then - echo "\"$POSTGRESQL_USERNAME\" \"$POSTGRESQL_PASSWORD\"" > "$PGBOUNCER_AUTH_FILE" + echo "\""$(pgbouncer_escape_auth "$POSTGRESQL_USERNAME")"\" \""$(pgbouncer_escape_auth "$POSTGRESQL_PASSWORD")"\"" \ + > "$PGBOUNCER_AUTH_FILE" echo "$PGBOUNCER_USERLIST" >> "$PGBOUNCER_AUTH_FILE" else debug "User list file mounted externally, skipping configuration"