Development #40275
crash sur % dans le fichier de config
0%
Description
Si un % dans le mot de passe de la db par exemple, wcs-olap.ini se retrouve avec une ligne :
pg_dsn = dbname=bijoe password=rdf%ff
Et ça pête :
(publik-env-py3) cazino@cazino-laptop:~/src/combo$ wcs-olap /var/lib/bijoe/tenants/bijoe.dev.publik.love/wcs-olap.ini Traceback (most recent call last): File "/home/cazino/envs/publik-env-py3/bin/wcs-olap", line 11, in <module> load_entry_point('wcs-olap', 'console_scripts', 'wcs-olap')() File "/home/cazino/src/wcs-olap/wcs_olap/cmd.py", line 14, in main main2() File "/home/cazino/src/wcs-olap/wcs_olap/cmd.py", line 85, in main2 defaults.update(config.items('wcs-olap')) File "/usr/lib/python3.7/configparser.py", line 857, in items return [(option, value_getter(option)) for option in d.keys()] File "/usr/lib/python3.7/configparser.py", line 857, in <listcomp> return [(option, value_getter(option)) for option in d.keys()] File "/usr/lib/python3.7/configparser.py", line 854, in <lambda> section, option, d[option], d) File "/usr/lib/python3.7/configparser.py", line 394, in before_get self._interpolate_some(parser, option, L, value, section, defaults, 1) File "/usr/lib/python3.7/configparser.py", line 444, in _interpolate_some "found: %r" % (rest,)) configparser.InterpolationSyntaxError: '%' must be followed by '%' or '(', found: '%ff'
Fichiers
Révisions associées
Historique
Mis à jour par Benjamin Dauvergne il y a environ 4 ans
- Projet changé de OLAP / Business Intelligence pour Publik à BiJoe
Il faut produire %% ; c'est le boulot de bijoe.
Mis à jour par Benjamin Dauvergne il y a environ 4 ans
- Fichier 0001-misc-use-quoting-in-pg_dsn-40275.patch 0001-misc-use-quoting-in-pg_dsn-40275.patch ajouté
- Tracker changé de Bug à Development
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
Mis à jour par Benjamin Dauvergne il y a environ 4 ans
C'est pas vraiment du code testé, donc à tester en dév à la main si possible.
Mis à jour par Frédéric Péters il y a environ 4 ans
Je n'ai pas regardé les détails mais quid de plutôt à utiliser RawConfigParser, si on n'exploite pas les possibilités de substitution chaine.
Mis à jour par Benjamin Dauvergne il y a environ 4 ans
Frédéric Péters a écrit :
Je n'ai pas regardé les détails mais quid de plutôt à utiliser RawConfigParser, si on n'exploite pas les possibilités de substitution chaine.
Ce serait aussi une solution mais la construction est tout de même déficiente au moins sur le quoting des attributs du DSN postgresql (si on a un espace dans un mot de passe ou un quote ça va foirer).
Mis à jour par Benjamin Dauvergne il y a environ 4 ans
- Fichier 0001-misc-use-quoting-in-pg_dsn-40275.patch 0001-misc-use-quoting-in-pg_dsn-40275.patch ajouté
Voilà avec un vrai test, je suis passé à SafeConfigParser qui correspond au ConfigParser python3 dans wcs-olap.
Mis à jour par Emmanuel Cazenave il y a environ 4 ans
- Statut changé de Solution proposée à Solution validée
Mis à jour par Benjamin Dauvergne il y a environ 4 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit 1dbee3c4b3878d4ed5612a1153fb9b28a5058018 Author: Benjamin Dauvergne <bdauvergne@entrouvert.com> Date: Fri Feb 28 18:55:56 2020 +0100 misc: use quoting in pg_dsn (#40275)
Mis à jour par Frédéric Péters il y a environ 4 ans
- Statut changé de Résolu (à déployer) à Solution déployée
misc: use quoting in pg_dsn (#40275)