From: | Peter Eisentraut <peter(dot)eisentraut(at)2ndquadrant(dot)com> |
---|---|
To: | Michael Paquier <michael(dot)paquier(at)gmail(dot)com>, PostgreSQL mailing lists <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Forbid use of LF and CR characters in database and role names |
Date: | 2016-09-06 16:13:00 |
Message-ID: | 5f20efb3-0ec3-db4f-5706-2bcaed230385@2ndquadrant.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 8/11/16 9:12 PM, Michael Paquier wrote:
> Note that pg_dump[all] and pg_upgrade already have safeguards against
> those things per the same routines putting quotes for execution as
> commands into psql and shell. So attached is a patch to implement this
> restriction in the backend, and I am adding that to the next CF for
> 10.0. Attached is as well a script able to trigger those errors.
After further review, I have my doubts about this approach.
Everything that is using appendShellString() is now going to reject LF
and CR characters, but there is no systematic way by which this is
managed, enforced, or documented. It happens that right now most of the
affected cases are user and database names, but there are others. For
example, you cannot anymore install PostgreSQL into a path containing
LF/CR, because initdb will fail when it composes the pg_ctl command line
to print out. Also, initdb will fail if the data directory name
contains LF/CR, but it creates the directory nonetheless. (Apparently,
it doesn't even clean it up.) But for example pg_ctl and pg_basebackup
and postgres itself handle all of that just fine. This is a slowly
growing mess.
I think the way forward here, if any, is to work on removing these
restrictions, not to keep sprinkling them around.
--
Peter Eisentraut http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
From | Date | Subject | |
---|---|---|---|
Next Message | Peter Eisentraut | 2016-09-06 16:19:31 | Re: [COMMITTERS] pgsql: Make initdb's suggested "pg_ctl start" command line more reliabl |
Previous Message | Marti Raudsepp | 2016-09-06 16:02:15 | SELECT FOR UPDATE regression in 9.5 |