pgsql: Tighten up allowed names for custom GUC parameters.

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Tighten up allowed names for custom GUC parameters.
Date: 2021-04-07 15:22:29
Message-ID: E1lUA0j-0008WN-7s@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Tighten up allowed names for custom GUC parameters.

Formerly we were pretty lax about what a custom GUC's name could
be; so long as it had at least one dot in it, we'd take it.
However, corner cases such as dashes or equal signs in the name
would cause various bits of functionality to misbehave. Rather
than trying to make the world perfectly safe for that, let's
just require that custom names look like "identifier.identifier",
where "identifier" means something that scan.l would accept
without double quotes.

Along the way, this patch refactors things slightly in guc.c
so that find_option() is responsible for reporting GUC-not-found
cases, allowing removal of duplicative code from its callers.

Per report from Hubert Depesz Lubaczewski. No back-patch,
since the consequences of the problem don't seem to warrant
changing behavior in stable branches.

Discussion: https://postgr.es/m/951335.1612910077@sss.pgh.pa.us

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/3db826bd55cd1df0dd8c3d811f8e5b936d7ba1e4

Modified Files
--------------
src/backend/utils/misc/guc-file.l | 4 +-
src/backend/utils/misc/guc.c | 167 ++++++++++++++++++++++----------------
src/test/regress/expected/guc.out | 21 +++++
src/test/regress/sql/guc.sql | 10 +++
4 files changed, 132 insertions(+), 70 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Peter Geoghegan 2021-04-07 15:48:13 pgsql: Truncate line pointer array during VACUUM.
Previous Message Tom Lane 2021-04-07 14:27:43 Re: pgsql: Add some information about authenticated identity via log_connec