From b52137bf9857e608ac7e448436abd15ddf8f8424 Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Fri, 28 Feb 2020 18:55:56 +0100 Subject: [PATCH] misc: use quoting in pg_dsn (#40275) --- bijoe/hobo_agent/management/commands/hobo_deploy.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/bijoe/hobo_agent/management/commands/hobo_deploy.py b/bijoe/hobo_agent/management/commands/hobo_deploy.py index 1ff8fb8..9c065e0 100644 --- a/bijoe/hobo_agent/management/commands/hobo_deploy.py +++ b/bijoe/hobo_agent/management/commands/hobo_deploy.py @@ -25,6 +25,14 @@ from hobo.multitenant.settings_loaders import KnownServices from django.conf import settings +def pg_dsn_quote(value): + return "'%s'" % value.replace('\\', '\\\\').replace('\'', '\\\'') + + +def config_parser_quote(value): + return value.replace('%', '%%') + + class Command(hobo_deploy.Command): def deploy_specifics(self, hobo_environment, tenant): @@ -50,8 +58,8 @@ class Command(hobo_deploy.Command): if settings.DATABASES['default'].get(pg_dsn_part[0]): pg_dsn_parts.append('%s=%s' % ( pg_dsn_part[1], - settings.DATABASES['default'].get(pg_dsn_part[0]))) - config.set('wcs-olap', 'pg_dsn', ' '.join(pg_dsn_parts)) + pg_dsn_quote(settings.DATABASES['default'].get(pg_dsn_part[0])))) + config.set('wcs-olap', 'pg_dsn', config_parser_quote(' '.join(pg_dsn_parts))) for service in services: if service.get('this'): -- 2.24.0