From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | pgsql-committers(at)lists(dot)postgresql(dot)org |
Subject: | pgsql: In username-map substitution, cope with more than one \1. |
Date: | 2025-07-13 17:52:41 |
Message-ID: | E1ub0sT-00685V-0T@gemulon.postgresql.org |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-committers |
In username-map substitution, cope with more than one \1.
If the system-name field of a pg_ident.conf line is a regex
containing capturing parentheses, you can write \1 in the
user-name field to represent the captured part of the system
name. But what happens if you write \1 more than once?
The only reasonable expectation IMO is that each \1 gets
replaced, but presently our code replaces only the first.
Fix that.
Also, improve the tests for this feature to exercise cases
where a non-empty string needs to be substituted for \1.
The previous testing didn't inspire much faith that it
was verifying correct operation of the substitution code.
Given the lack of field complaints about this, I don't
feel a need to back-patch.
Reported-by: David G. Johnston <david(dot)g(dot)johnston(at)gmail(dot)com>
Author: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Discussion: https://postgr.es/m/CAKFQuwZu6kZ8ZPvJ3pWXig+6UX4nTVK-hdL_ZS3fSdps=RJQQQ@mail.gmail.com
Branch
------
master
Details
-------
https://git.postgresql.org/pg/commitdiff/3c4e26a62c31ebe296e3aedb13ac51a7a35103bd
Modified Files
--------------
src/backend/libpq/hba.c | 38 ++++++++++++++++++++++++++---------
src/test/authentication/t/003_peer.pl | 18 +++++++++++------
2 files changed, 40 insertions(+), 16 deletions(-)
From | Date | Subject | |
---|---|---|---|
Next Message | Michael Paquier | 2025-07-14 00:09:27 | pgsql: psql: Add variable SERVICEFILE |
Previous Message | Michael Paquier | 2025-07-13 07:53:34 | pgsql: libpq: Add "servicefile" connection option |