Field conninfo strings throughout src/bin/scripts.
These programs nominally accepted conninfo strings, but they would
proceed to use the original dbname parameter as though it were an
unadorned database name. This caused "reindexdb dbname=foo" to issue an
SQL command that always failed, and other programs printed a conninfo
string in error messages that purported to print a database name. Fix
both problems by using PQdb() to retrieve actual database names.
Continue to print the full conninfo string when reporting a connection
failure. It is informative there, and if the database name is the sole
problem, the server-side error message will include the name. Beyond
those user-visible fixes, this allows a subsequent commit to synthesize
and use conninfo strings without that implementation detail leaking into
messages. As a side effect, the "vacuuming database" message now
appears after, not before, the connection attempt. Back-patch to 9.1
(all supported versions).
Reviewed by Michael Paquier and Peter Eisentraut.
Security: CVE-2016-5424
Branch
------
REL9_4_STABLE
Details
-------
http://git.postgresql.org/pg/commitdiff/aed0387958e5774b60618b3cca52c6dad871cdba
Modified Files
--------------
src/bin/scripts/clusterdb.c | 4 ++--
src/bin/scripts/createlang.c | 4 ++--
src/bin/scripts/droplang.c | 4 ++--
src/bin/scripts/reindexdb.c | 24 ++++++++++++------------
src/bin/scripts/vacuumdb.c | 12 ++++++------
5 files changed, 24 insertions(+), 24 deletions(-)